Diff for "VcsImportRequests"

Not logged in - Log In / Register

Differences between revisions 110 and 270 (spanning 160 versions)
Revision 110 as of 2006-12-04 14:23:12
Size: 16161
Editor: ddaa
Comment: tomboy failure: checkout did not give file data
Revision 270 as of 2021-05-27 14:19:59
Size: 37249
Editor: cjwatson
Comment: freenode → irc.libera.chat
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This page tracks requests for actions from the vcs-imports operator.

To request an import, please:
 * Create a product in Launchpad and set the source details to the C
VS or Subversion repository you wish to have imported. In particular
 * Add a request on this page, with the name of your launchpad account so I can find your email
.

Note that we only do imports of MAIN branches on CVS (the form will have to be updated to remove the "branch" field) and trunk branches on Subversion.

We will handle your request and keep you informed of progress or issues. You can contact the vcs-imports operator: ddaa in #launchpad on irc.freenode.net.

Template to request an import:

 * [
https://launchpad.net/people/<launchpad-user> <launchpad-user>]: https://launchpad.net/products/<launchpad-product>/<series> [[BR]]
## Remove the
backticks from the next line
   [@`DATE`@]
This page tracks requests for actions from the vcs-imports operator. To request an import, please see the instructions on VcsImports.

Note that we only do imports of MAIN branches on CVS (the form will have to be updated to remove the "branch" field).

We will handle your request and keep you informed of progress or issues. You can contact a vcs-imports operator on #launchpad on irc.libera.chat.

Note: There exists also https://dev.launchpad.net/ReviewingCodeImports, which is rather more up to date, and which this page should probably go away in favour of.
Line 18: Line 10:
[[TableOfContents()]] <<TableOfContents>>
Line 23: Line 15:
== Open requests ==

Imports that need intervention from the vcs-imports operator.

== In progress ==

Imports being processed.

 * [https://launchpad.net/people/dsnopek dsnopek]: https://launchpad.net/products/dojo/trunk [[BR]] http://svn.dojotoolkit.org/dojo/trunk [[BR]] [[[Date(2006-08-31T20:10:43Z)]]]
 * For open requests, see https://code.launchpad.net/+code-imports?field.review_status=NEW
Line 35: Line 19:
Imports that are currently failing, and for which no fix is currently being worked on.

== [svn] wrong repository root ==

The current svn import code determines the root of the repository by walking up the URL until svn ls fails. This was necessary because older versions of libsvn_client did not expose the repository root information. Newer libsvn_client allow to determine this information directly. In cases where there are nested svn repositories, the old logic is wrong and that cause the change filtering (ignoring change outside of the branch being imported) to ignore legitimate changes.

 * nobody: [https://launchpad.net/products/libsyncml/trunk libsyncml/trunk] [[BR]] http://svn.opensync.org/libsyncml/trunk [[BR]] [[Date(2006-11-28T11:56:17Z)]]
Imports that are currently failing: https://code.launchpad.net/+code-imports?field.review_status=FAILING

Number failing by type on 2011-04-08:
 * CVS: 434
 * Subversion via CSCVS: 451
 * Subversion via bzr-svn: 80
 * Git: 108
 * Mercurial: 119

... from which we may conclude that CSCVS is A Problem :-)

== [svn] svn_subst_translate_stream3 ==

Imports that failed with the following error:

{{{
python2.4: /build/buildd/subversion-1.3.1/subversion/libsvn_subr/subst.c:809: svn_subst_translate_stream3: Assertion `eol_str || keywords' failed.
process killed by signal 6
}}}

It looks like a problem in the svn code for keyword expansion.

 * nobody: [[https://launchpad.net/mcs/trunk|mcs/trunk]] <<BR>> svn://svn.myrealbox.com/source/trunk/mcs <<BR>> <<Date(2007-01-23T13:56:36Z)>>

 * nobody: https://launchpad.net/felix <<BR>> https://svn.sourceforge.net/svnroot/felix/felix/trunk <<BR>> [<<Date(2007-06-13T10:30:41Z)>>]

 * nobody: https://launchpad.net/xvr2/trunk <<BR>> https://xvr2.svn.sourceforge.net/svnroot/xvr2/trunk <<BR>> [<<Date(2007-07-18T11:58:05Z)>>]

 * nobody: [[https://launchpad.net/products/tendra/trunk|tendra/trunk]] <<BR>> svn://svn.tendra.org/tendra/tendra/tendra/trunk <<BR>> <<Date(2007-09-10T14:42:36Z)>>

 * nobody: [[https://launchpad.net/products/callweaver/trunk|callweaver/trunk]] <<BR>> http://svn.callweaver.org/callweaver/trunk <<BR>> <<Date(2008-02-12T14:42:36Z)>>

 * nobody: [[https://launchpad.net/nav/trunk|nav/trunk]] <<BR>> http://svn.itea.ntnu.no/repos/nav/navme/trunk <<BR>> [<<Date(2008-02-14T13:33:51Z)>>]

== [svn] bogus repository root detection ==

[[https://bugs.launchpad.net/bugs/156744|Bug 156744]].

 * noone: [[https://launchpad.net/products/strongswan/trunk|strongswan/trunk]] <<BR>> http://www.strongswan.org/ikev2/trunk <<BR>> <<Date(2007-05-11T14:09:51Z)>>

 * nobody: [[https://launchpad.net/products/libsyncml/trunk|libsyncml/trunk]] <<BR>> http://svn.opensync.org/libsyncml/trunk <<BR>> <<Date(2006-11-28T11:56:17Z)>>

 * nobody: [[https://launchpad.net/products/freedroid/trunk|freedroid/trunk]] <<BR>> http://freedroid.svn.sourceforge.net/svnroot/freedroid <<BR>> [[<<Date(2008-02-13T18:14:04Z)>>]]

 * nobody: [[https://launchpad.net/mumbles/trunk|mumbles/trunk]] <<BR>> https://mumbles.svn.sourceforge.net/svnroot/mumbles <<BR>> [<<Date(2008-02-14T13:33:51Z)>>]

 * nobody: https://launchpad.net/warwickdate/trunk <<BR>>
 http://svn.uwcs.co.uk/repos/warwickdate <<BR>> [<<Date(2008-02-14T14:46:38Z)>>]

 * nobody: https://launchpad.net/dtv/trunk <<BR>>
   https://svn.participatoryculture.org/svn/dtv/trunk [<<Date(2008-02-14T15:03:18Z)>>] https://importd-buildbot.launchpad.net/hoover/status/dtv-trunk/events/6/log

 * nobody: https://launchpad.net/synplayer/trunk[[BR]]
   http://www.tudorholton.com/svn/SYNPlayer
Line 47: Line 78:
 * nobody: [https://launchpad.net/products/debconf/head debconf/head] [[BR]] svn://svn.debian.org/debconf/trunk/src/debconf [[BR]] [[Date(2006-11-28T11:51:08Z)]]

 * nobody: [https://launchpad.net/products/deluge/trunk deluge/trunk] [[BR]] http://deluge-torrent.googlecode.com/svn/trunk [[BR]] [[Date(2006-11-28T11:51:08Z)]]

 * nobody: [https://launchpad.net/products/reconstructor/trunk reconstructor/trunk] [[BR]] http://reconstructor.googlecode.com/svn/trunk [[BR]] [[Date(2006-11-28T11:51:08Z)]]

 * nobody: [https://launchpad.net/products/debian-installer/main debian-installer/main] [[BR]] svn://svn.debian.org/d-i/trunk/installer [[BR]] [[Date(2006-11-28T11:51:08Z)]]

 * nobody: [https://launchpad.net/products/python2.4-matplotlib/trunk matplotlib/trunk] [[BR]] https://svn.sourceforge.net/svnroot/matplotlib/trunk/matplotlib [[BR]] [[Date(2006-11-29T09:58:17Z)]]

 * nobody: [https://launchpad.net/products/brltty/main brltty/main] [[BR]] svn://mielke.cc/main/brltty [[BR]] [[Date(2006-11-29T10:32:43Z)]]

 * nobody: [https://launchpad.net/products/codeblocks/trunk codeblocks/trunk] [[BR]] svn://svn.berlios.de/codeblocks/trunk [[BR]] [[Date(2006-12-04T14:03:14Z)]]

== [svn] missing uri-encoding ==

cscvs uses the svn_client API to libsvn to retrieve data (on [[Date(2006-11-09T14:31:29Z)]]), but does not correctly uri-encode locations. So file names that contain characters that must be escaped cause import failures.

 * nobody: [https://launchpad.net/products/dcsharp/trunk dcsharp/trunk] [[BR]] [[Date(2006-11-09T14:31:29Z)]]

 * nobody: [https://launchpad.net/products/wxmsn/trunk wxmsn/trunk] [[BR]] [[Date(2006-11-09T14:34:42Z)]]

 * nobody: [https://launchpad.net/products/tmw/trunk tmw/trunk] [[BR]] https://svn.sourceforge.net/svnroot/themanaworld/tmw/trunk [[BR]] [[[Date(2006-09-29T15:57:33Z)]]]

 * nobody: [https://launchpad.net/products/pcm/trunk pcm/trunk] [[BR]] http://clanmanager.googlecode.com/svn/trunk [[BR]] [[Date(2006-11-29T09:11:13Z)]]
See [[https://launchpad.net/bugs/120992|bug 120992]] (use persistent svn_ra sessions and reconnect on failure).

It could be that some of these failures are caused by another specific bug. From a discussion with Jelmer:

{{{
> > > * Don't rely on listdir() kind results. Fixes imports of several
> > > repositories. (#56647)
> > I'm curious about this bug. Can you tell me more?
> It turned out that the .kind member of dirents returned by
> svn.ra.get_dir2() is (semi-?)random when used against older Subversion
> servers. It would occasionally be 1 (svn.core.svn_node_file) even though
> the entry in question was a directory. This took me a while to track
> down. Instead, I've switched to always trying to open something as a
> directory and catching the appropriate exception that indicates it's a
> file.

That's very interesting. A number of Launchpad imports fail in a not-deterministic way with "failed REPORT". Currently I just classify those failures as "unreliable server", but I was puzzled by a pattern I noticed: the failures did not happen in a really random way.

It might be the same bug.
}}}

 * nobody: [[https://launchpad.net/products/brltty/main|brltty/main]] <<BR>> svn://mielke.cc/main/brltty <<BR>> <<Date(2006-11-29T10:32:43Z)>>

 * nobody: [[https://launchpad.net/products/codeblocks/trunk|codeblocks/trunk]] <<BR>> svn://svn.berlios.de/codeblocks/trunk <<BR>> <<Date(2006-12-04T14:03:14Z)>>

 * nobody: [[https://launchpad.net/products/xorg-driver-synaptics/main|xorg-driver-synaptics-main]] <<BR>> https://oops.kerneljanitors.org/repos/synaptic/trunk <<BR>> <<Date(2006-12-06T10:40:09Z)>>

 * nobody: [[https://launchpad.net/products/wesnoth/trunk|wesnoth/trunk]] <<BR>> http://svn.gna.org/svn/wesnoth/trunk <<BR>> <<Date(2006-12-08T13:26:17Z)>>

 * nobody: [[https://launchpad.net/products/libgcrypt/trunk|libgcrypt/trunk]] <<BR>> svn://cvs.gnupg.org/libgcrypt/trunk <<BR>> <<Date(2006-12-08T13:29:30Z)>>

 * nobody: [[https://launchpad.net/products/libcaca/trunk|libcaca/trunk]] <<BR>> svn://svn.zoy.org/libcaca/trunk <<BR>> <<Date(2006-12-11T14:46:59Z)>>

 * nobody: [[https://code.launchpad.net/gwenview/trunk|gwenview/trunk]] <<BR>> svn://anonsvn.kde.org/home/kde/trunk/extragear/graphics/gwenview <<BR>> <<Date(2007-01-23T14:03:32Z)>>

 * nobody: [[https://launchpad.net/phpmyadmin/trunk|phpmyadmin/trunk]] <<BR>> https://svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin <<BR>> <<Date(2007-02-15T16:50:50Z)>>

 * nobody: [[https://launchpad.net/cinelerra-cv/trunk|cinelerra-cv/trunk]] <<BR>> svn://svn.skolelinux.org/cinelerra/trunk/hvirtual <<BR>> <<Date(2007-02-15T16:55:10Z)>>

 * nobody: [[https://launchpad.net/bioclipse/trunk|bioclipse/trunk]] <<BR>> https://bioclipse.svn.sourceforge.net/svnroot/bioclipse/trunk <<BR>> <<Date(2007-02-19T18:57:25Z)>>

 * nobody: [[https://launchpad.net/products/dabo/trunk|dabo/trunk]] <<BR>> http://svn.dabodev.com/dabo/trunk <<BR>> <<Date(2007-03-20T16:16:03Z)>>

 * nobody: [[https://launchpad.net/products/antargis/trunk|antargis/trunk]] <<BR>> http://svn.berlios.de/svnroot/repos/antargis/antargis/trunk <<BR>> <<Date(2007-03-20T16:16:03Z)>>

 * nobody [[https://launchpad.net/products/lyx/trunk|lyx/trunk]] <<BR>> svn://svn.lyx.org/lyx/lyx-devel/trunk <<BR>> <<Date(2007-03-29T15:05:52Z)>>

 * nobody: [[https://launchpad.net/products/evennia/trunk|evennia/trunk]] <<BR>> http://evennia.googlecode.com/svn/trunk <<BR>> <<Date(2007-06-04T18:19:10Z)>>

 * nobody: [[https://launchpad.net/strongtalk/trunk|strongtalk/trunk]] <<BR>> http://strongtalk.googlecode.com/svn/trunk <<BR>> <<Date(2007-07-30T12:41:50Z)>> and again <<Date(2007-08-16T10:25:54Z)>>

 * nobody: [[https://launchpad.net/products/gantry/trunk|gantry/trunk]] <<BR>> http://gantry.googlecode.com/svn/trunk <<BR>> <<Date(2007-08-16T10:27:28Z)>> <<BR>> (this one seems quite consistent though)

 * nobody: [[https://launchpad.net/products/reviewboard/trunk|reviewboard/trunk]] <<BR>> http://reviewboard.googlecode.com/svn/trunk/reviewboard <<BR>> <<Date(2007-08-24T20:28:29Z)>>

 * nobody: [[https://launchpad.net/products/activeldap/trunk|activeldap/trunk]] <<BR>> http://ruby-activeldap.googlecode.com/svn/trunk <<BR>> <<Date(2007-09-10T13:42:44Z)>>

 * nobody: [[https://launchpad.net/products/loubia/trunk|loubia/trunk]] <<BR>> http://loubia.googlecode.com/svn/trunk <<BR>> <<Date(2007-09-10T15:20:34Z)>>

 * nobody: [[https://launchpad.net/products/h20/trunk|h20/trunk]] <<BR>> http://community.cecid.hku.hk/src/h2o/trunk <<BR>> <<Date(2007-09-10T15:56:10Z)>>

 * nobody: [[https://launchpad.net/products/wesnoth/trunk|wesnoth/trunk]] <<BR>> http://svn.gna.org/svn/wesnoth/trunk <<BR>> <<Date(2007-09-11T08:56:19Z)>>

 * nobody: [[https://launchpad.net/products/fanorona/trunk|fanorona/trunk]] <<BR>> svn://svn.gna.org/svn/fanorona/trunk <<BR>> <<Date(2007-09-26T16:53:25Z)>>

 * nobody: [[https://launchpad.net/products/gnucash/trunk|gnucash/trunk]] <<BR>> http://svn.gnucash.org/repo/gnucash/trunk <<BR>> <<Date(2007-10-08T16:24:19Z)>>

 * nobody: [[https://launchpad.net/products/couchdb/trunk|couchdb/trunk]] <<BR>> http://couchdb.googlecode.com/svn/trunk <<BR>> <<Date(2007-10-08T16:24:19Z)>>

 * [[https://launchpad.net/~jshaffer/|John Shaffer]]: [[https://launchpad.net/products/diamanda/trunk|diamanda/trunk]] <<BR>> http://diamanda.googlecode.com/svn/trunk <<BR>> <<Date(2007-10-17T17:00:42Z)>>

 * nobody: [[https://launchpad.net/products/flax/trunk|flax/trunk]] <<BR>> http://flaxcode.googlecode.com/svn/trunk <<BR>> <<Date(2007-11-27T10:12:42Z)>>

== [svn] pysvn._pysvn.ClientError: Connection closed unexpectedly ==

  * Example failure: https://importd-buildbot.launchpad.net/hoover/status/sapo-trunk/events/29/log

  * nobody: https://launchpad.net/sapo/trunk <<BR>> svn://svn.softwarelivre.sapo.pt/sapo_msg_mac/trunk

== [svn] pysvn._pysvn.ClientError: Malformed network data ==

  * Example failure: https://importd-buildbot.launchpad.net/hoover/status/freeciv-trunk/events/11/log

  * nobody: https://launchpad.net/freeciv/trunk <<BR>> svn://svn.gna.org/svn/freeciv/trunk

  * nobody: https://launchpad.net/clansuite/trunk <<BR>> svn://svn.gna.org/svn/clansuite/trunk


== [svn] import stalls, or is too slow ==

The import system will kill any job that does produce output for "a long time" (4 hours, at time of writing, on <<Date(2007-02-15T17:32:46Z)>>). So if, for some reason, an import does not report progress for a long time, either because it is stuck or because it is ''really slow'', it will fail.

 * [[https://launchpad.net/~jbailey|jbailey]]: [[https://launchpad.net/eglibc/trunk|eglibc/trunk]] <<BR>> svn://svn.eglibc.org/trunk <<BR>> <<Date(2007-02-15T17:32:46Z)>>

 * nobody: [[https://launchpad.net/products/kompozer/trunk|kompozer/trunk]] <<BR>> https://kompozer.svn.sourceforge.net/svnroot/kompozer/trunk <<BR>> <<Date(2007-10-22T09:41:32Z)>>
Line 75: Line 176:
 * nobody: [https://launchpad.net/products/greasemonkey/trunk greasemonkey/trunk] [[BR]] :pserver:guest:guest``@mozdev.org:/cvs greasemonkey [[BR]] [[Date(2006-11-09T14:24:47Z)]]  * nobody: [[https://launchpad.net/products/greasemonkey/trunk|greasemonkey/trunk]] <<BR>> :pserver:guest:guest``@mozdev.org:/cvs greasemonkey <<BR>> <<Date(2006-11-09T14:24:47Z)>>
Line 84: Line 185:
== [svn] svn:externals ==

[https://launchpad.net/products/launchpad-bazaar/+bug/69513 Bug 69513]

 * nobody: python-musicbrainz2/trunk [[BR]] [[Date(2006-11-09T14:19:15Z)]]

 * nobody: [https://launchpad.net/products/hyperic-hq/trunk hyperic-hq/trunk] [[BR]] http://svn.hyperic.org/projects/hq/trunk [[BR]] [[Date(2006-11-09T14:49:55Z)]]

 * nobody: [https://launchpad.net/products/closetgnome/trunk closetgnome/trunk] [[BR]] http://svn.wowace.com/wowace/trunk/ClosetGnome [[BR]] [[Date(2006-11-27T14:54:44Z)]]

 * nobody: [https://launchpad.net/products/openvpn/trunk openvpn/trunk] [[BR]] http://svn.openvpn.net/projects/openvpn/trunk/openvpn [[BR]] [[Date(2006-11-27T18:18:14Z)]]

 * nobody: [https://launchpad.net/products/shotserver/trunk shotserver/trunk] [[BR]] http://svn.browsershots.org/trunk/shotserver [[BR]] [[Date(2006-11-29T09:52:44Z)]]

 * nobody: [https://launchpad.net/products/taglib/trunk taglib/trunk] [[BR]] svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib [[BR]] [[Date(2006-12-01T09:33:05Z)]]

 * [https://launchpad.net/people/radix radix]: [https://launchpad.net/products/pypy/trunk pypy/trunk] [[BR]] http://codespeak.net/svn/pypy/dist [[BR]] [[Date(2006-12-04T13:56:20Z)]]
<<Anchor(cvs-file-added-on-branch)>>
Line 104: Line 188:
 * [[Anchor(epiphany-browser)]][https://launchpad.net/people/seb128 seb128]: https://launchpad.net/products/epiphany-browser/main [[BR]] :pserver:anonymous``@anoncvs.gnome.org:/cvs/gnome epiphany [[BR]] [[[Date(2006-10-16T14:54:17Z)]]]
   * On changeset MAIN.67 [[BR]] ValueError: attempt to patch non extant file : data/ui/epiphany-toolbar.xml.in
 * <<Anchor(epiphany-browser)>>[[https://launchpad.net/people/seb128|seb128]]: https://launchpad.net/products/epiphany-browser/main <<BR>> :pserver:anonymous``@anoncvs.gnome.org:/cvs/gnome epiphany <<BR>> [<<Date(2006-10-16T14:54:17Z)>>]
   * On changeset MAIN.67 <<BR>> ValueError: attempt to patch non extant file : data/ui/epiphany-toolbar.xml.in
Line 145: Line 229:
 * [[Anchor(grub2)]][https://launchpad.net/people/jbailey jbailey]: https://launchpad.net/products/grub/grub2 [[BR]] :pserver:anonymous``@cvs.savannah.gnu.org:/sources/grub grub2 [[BR]] [[[Date(2006-10-20T16:10:46Z)]]]
   * On changeset MAIN.340 [[BR]] ValueError: attempt to patch non extant file : disk/lvm.c
 * <<Anchor(grub2)>>[[https://launchpad.net/people/jbailey|jbailey]]: https://launchpad.net/products/grub/grub2 <<BR>> :pserver:anonymous``@cvs.savannah.gnu.org:/sources/grub grub2 <<BR>> [<<Date(2006-10-20T16:10:46Z)>>]
   * On changeset MAIN.340 <<BR>> ValueError: attempt to patch non extant file : disk/lvm.c

 * nobody: https://launchpad.net/gstreamer <<BR>> :pserver:anoncvs@pdx.freedesktop.org:/cvs/gstreamer gstreamer <<BR>> [<<Date(2007-06-13T10:25:09Z)>>]
  * On changeset MAIN.7669 `ValueError: attempt to patch non extant file : docs/design/draft-missing-plugins.txt`
 * nobody: https://launchpad.net/llvm <<BR>> :pserver:anon@llvm.org:/var/cvs/llvm llvm <<BR>> [<<Date(2007-06-13T10:25:09Z)>>]
  * On changeset MAIN.30541 `ValueError: attempt to patch non extant file : lib/VMCore/ConstantFold.cpp`
 * nobody: https://launchpad.net/libgd <<BR>> pserver:cvsread@cvs.php.net:/repository gd/libgd <<BR>> [<<Date(2007-06-13T10:25:09Z)>>]
  * On changeset MAIN.177 `ValueError: attempt to patch non extant file : VMS/CONFIGURE.COM`
 * nobody: https://launchpad.net/poppler <<BR>> :pserver:anoncvs@cvs.freedesktop.org:/cvs/poppler poppler <<BR>> [<<Date(2007-06-13T10:25:09Z)>>]
  * On changeset MAIN.693 `ValueError: attempt to patch non extant file : goo/gmem.cc`
Line 152: Line 245:
 * nobody: https://launchpad.net/products/gtimelog/devel [[BR]] http://mg.pov.lt/gtimelog/svn [[BR]] [[[Date(2006-10-23T16:31:04Z)]]]

 * nobody: https://launchpad.net/products/josm/trunk [[BR]] http://www.eigenheimstrasse.de/svn/josm [[BR]] [[[Date(2006-10-23T16:31:04Z)]]]

 * nobody: https://launchpad.net/products/comix/trunk [[BR]] https://svn.sourceforge.net/svnroot/comix [[BR]] [[[Date(2006-10-23T16:31:04Z)]]]

[[Anchor(squid)]]
See bug [[https://bugs.launchpad.net/launchpad-cscvs/+bug/145240|145240]].

 * nobody: https://launchpad.net/products/gtimelog/devel <<BR>> http://mg.pov.lt/gtimelog/svn <<BR>> [<<Date(2006-10-23T16:31:04Z)>>]

 * nobody: https://launchpad.net/products/josm/trunk <<BR>> http://www.eigenheimstrasse.de/svn/josm <<BR>> [<<Date(2006-10-23T16:31:04Z)>>]

 * nobody: https://launchpad.net/products/comix/trunk <<BR>> https://svn.sourceforge.net/svnroot/comix <<BR>> [<<Date(2006-10-23T16:31:04Z)>>]

 * nobody: https://launchpad.net/pesto.green.tv/trunk/ <<BR>> svn://pesto.largeblue.net/pesto (and even that url seems wrong) <<BR>> [<<Date(2007-06-14T09:24:19Z)>>]

 * nobody: [[https://launchpad.net/products/blueman/trunk|blueman/trunk]] <<BR>> https://blueman.svn.sourceforge.net/svnroot/blueman <<BR>> <<Date(2007-09-03T11:59:50Z)>>

 * nobody: [[https://launchpad.net/products/checkgmail/1.12|checkgmail/1.12]] <<BR>> https://checkgmail.svn.sourceforge.net/svnroot/checkgmail <<BR>> <<Date(2007-10-22T09:40:29Z)>>

 * nobody: [[https://launchpad.net/products/freedroid/trunk|freedroid/trunk]] <<BR>> http://freedroid.svn.sourceforge.net/svnroot/freedroid <<BR>> <<Date(2008-01-04T17:00:24Z)>>

<<Anchor(squid)>>
Line 165: Line 268:
 * [https://launchpad.net/people/lifeless lifeless]: https://launchpad.net/products/squid/2.6 [[BR]] :pserver:anoncvs:anoncvs`@`cvs.squid-cache.org:/squid squid [[BR]] [[[Date(2006-10-31T16:02:19Z)]]]

 * [https://launchpad.net/people/lifeless lifeless]: https://launchpad.net/products/squid/3.0 [[BR]] :pserver:anoncvs:anoncvs`@`cvs.squid-cache.org:/squid squid3 [[BR]] [[[Date(2006-10-31T16:02:19Z)]]]
 * [[https://launchpad.net/people/lifeless|lifeless]]: https://launchpad.net/products/squid/2.6 <<BR>> :pserver:anoncvs:anoncvs`@`cvs.squid-cache.org:/squid squid <<BR>> [<<Date(2006-10-31T16:02:19Z)>>]

 * [[https://launchpad.net/people/lifeless|lifeless]]: https://launchpad.net/products/squid/3.0 <<BR>> :pserver:anoncvs:anoncvs`@`cvs.squid-cache.org:/squid squid3 <<BR>> [<<Date(2006-10-31T16:02:19Z)>>]

 * nobody: https://launchpad.net/netbsd-sys-src/trunk/ <<BR>> :pserver:anoncvs:anoncvs`@`anoncvs.NetBSD.org:/cvsroot src/sys <<BR>> [<<Date(2007-07-16T07:27:42Z)>>]

 * nobody: [[https://launchpad.net/products/snort/trunk|snort/trunk]] <<BR>> cvs -d :pserver:anonymous@cvs.snort.org:/cvsroot co snort <<BR>> <<Date(2007-08-06T15:25:17Z)>>
Line 171: Line 278:
 * nobody: https://launchpad.net/products/unixodbc/main [[BR]] :pserver:anonymous`@`unixodbc.cvs.sourceforge.net:/cvsroot/unixodbc unixODBC [[BR]] [[[Date(2006-08-29T11:27:45Z)]]]
   * on changeset MAIN.1 [[BR]] The branch contains a file named `odbctest/C:\IB6TRACE.LOG` (yes, starting with `C:\`!) [[BR]] in bzrlib.workingtree.WorkingTree.add [[BR]] bzrlib.errors.NotVersionedError: ['odbctest', 'C:'] is not versioned [[BR]]
This is [[https://bugs.launchpad.net/bzr/+bug/58180|bzr bug #58180]]. When/if that gets fixed, all these could be retried.

 * nobody: https://launchpad.net/products/unixodbc/main <<BR>> :pserver:anonymous`@`unixodbc.cvs.sourceforge.net:/cvsroot/unixodbc unixODBC <<BR>> [<<Date(2006-08-29T11:27:45Z)>>]
   * on changeset MAIN.1 <<BR>> The branch contains a file named `odbctest/C:\IB6TRACE.LOG` (yes, starting with `C:\`!) <<BR>> in bzrlib.workingtree.WorkingTree.add <<BR>> bzrlib.errors.NotVersionedError: ['odbctest', 'C:'] is not versioned <<BR>>

 * [[https://launchpad.net/~kamion|cjwatson]]: https://beta.launchpad.net/lintian/main <<BR>> http://svn.wolffelaar.nl/lintian/trunk <<BR>> <<Date(2007-04-27T23:32:44Z)>>
  * On changeset 1:bzrlib.errors.InvalidEntryName: Invalid entry name: '\ <<BR>> The branch contains a file name `'\` (quote backslash).

 * dan_p on #launchpad: https://launchpad.net/moodle/trunk <<BR>> :pserver:anonymous`@`uk.cvs.moodle.org:/cvsroot/moodle moodle <<BR>> [<<Date(2007-05-25T09:35:05Z)>>] <<BR>> There are a few revisions with a file called \ in them: http://moodle.cvs.sourceforge.net/moodle/moodle/mod/data/field/text/%5C?hideattic=0&view=log#rev1.2


 * [[https://launchpad.net/~s-devrieze|s-devrieze]]: [[https://launchpad.net/products/coccinella/trunk|coccinella/trunk]] <<BR>> :pserver:anonymous@coccinella.cvs.sourceforge.net:/cvsroot/coccinella coccinella <<BR>> <<Date(2007-09-18T20:25:38Z)>> <<BR>> Contains a file name with a newline. See [[https://launchpad.net/bugs/3918|bug 3918]].
Line 176: Line 293:
 * nobody: [https://launchpad.net/products/xrms/trunk xrms/trunk] [[BR]] :pserver:anonymous``@xrms.cvs.sourceforge.net:/cvsroot/xrms/ xrms [[BR]] [[[Date(2006-09-29T21:20:41Z)]]]
   * on changeset MAIN.4167: [[BR]] CRITICAL: requested checkout of reporoot '/cvsroot/xrms', file 'xrms/include/adodb/pear/Attic/readme.Auth.txt', revision '1.1.1.2' [[BR]] CRITICAL: log of checkout responses follow. [[BR]] CRITICAL: "E cvs checkout: cannot find module [[BR]] `xrms/include/adodb/pear/Attic/readme.Auth.txt' - ignored\n" [[BR]] CRITICAL: 'error \n'
<<Anchor(xrms)>>
* nobody: [[https://launchpad.net/products/xrms/trunk|xrms/trunk]] <<BR>> :pserver:anonymous``@xrms.cvs.sourceforge.net:/cvsroot/xrms/ xrms <<BR>> [<<Date(2006-09-29T21:20:41Z)>>]
   * on changeset MAIN.4167: <<BR>> CRITICAL: requested checkout of reporoot '/cvsroot/xrms', file 'xrms/include/adodb/pear/Attic/readme.Auth.txt', revision '1.1.1.2' <<BR>> CRITICAL: log of checkout responses follow. <<BR>> CRITICAL: "E cvs checkout: cannot find module <<BR>> `xrms/include/adodb/pear/Attic/readme.Auth.txt' - ignored\n" <<BR>> CRITICAL: 'error \n'
Line 191: Line 309:
 * [https://launchpad.net/people/jordi jordi]: [https://launchpad.net/products/gtetrinet/trunk gtetrinet/trunk] [[BR]] :pserver:anonymous``@anoncvs.gnome.org:/cvs/gnome gtetrinet [[BR]] [[Date(2006-11-30T17:27:49Z)]]
   * on changeset MAIN.394 [[BR]] CRITICAL: requested checkout of reporoot '/cvs/gnome', file 'gtetrinet/src/Attic/tetris.h', revision '1.15.2.2' [[BR]] CRITICAL: log of checkout responses follow. [[BR]] CRITICAL: "E cvs server: cannot find module `gtetrinet/src/Attic/tetris.h' - ignored\n" [[BR]] CRITICAL: 'error \n'
   * cscvs creates a filler changeset 1.1->1.15.2.2 for gtetrinet/src/tetris.h but the log of that file only has revisions 1.1, 1.1.1.1, 1.1.1.1.2.2, 1.1.1.1.2.1.

== [cvs] Checkout gave no file data ==

 * nobody: [https://launchpad.net/products/tomboy/head tomboy/head] [[BR]] :pserver:anonymous``@anoncvs.gnome.org:/cvs/gnome tomboy [[BR]] [[Date(2006-12-04T14:23:12Z)]]

{{{
WARNING: N changeset MAIN.745
CRITICAL: checkout did not give file data and did not indicate file was removed.
CRITICAL: requested checkout of reporoot '/cvs/gnome', file 'tomboy/www/img/intro.gif', revision '1.1'
CRITICAL: log of checkout responses follow.
CRITICAL: 'ok\n'
}}}

The cscvs log for this changeset:

{{{
ChangeSet: 745
Author: orph
Date: 2004/09/18 08:52:21
Branch: MAIN
CVSDefaultFiller
Revisions:
        F www/img/intro.gif [1.1->1.1] +0-0

Filler changeset 1.1->1.1
}}}

== [svn] repository password protected ==

 * nobody: [[https://launchpad.net/products/yast/trunk|yast/trunk]] <<BR>> https://forgesvn1.novell.com/svn/yast/trunk <<BR>> <<Date(2006-12-08T13:34:33Z)>>

 * nobody: [[https://launchpad.net/products/bauble/trunk|bauble/trunk]] <<BR>> https://forgesvn1.novell.com/svn/bauble/trunk <<BR>> <<Date(2006-12-08T13:46:06Z)>>

 * nobody: [[https://launchpad.net/teotux/trunk|teotux/trunk]] <<BR>> https://talk.apaq.dk/svn/teotux <<BR>> <<Date(2007-04-16T17:23:25Z)>>

 * nobody: [[https://launchpad.net/kadu/trunk|kadu/trunk]] <<BR>> http://kadu.net/svn/kadu/trunk <<BR>> <<Date(2007-07-30T11:05:29Z)>>

 * nobody: [[https://launchpad.net/simile/trunk/|simile/trunk]] <<BR>> https://reflectian.springloops.com/source/free <<BR>> <<Date(2007-07-30T11:07:42Z)>>

 * nobody: [[https://launchpad.net/jxta-c/trunk|jxta-c/trunk]] <<BR>> https://jxta-c.dev.java.net/svn/jxta-c/trunk <<Date(2007-08-06T15:42:28Z)>>

 * nobody: [[https://launchpad.net/products/remuli/trunk|remuli/trunk]] <<BR>> http://anderlin.dyndns.org/svn/jmplayer/trunk <<BR>> <<Date(2007-08-15T10:18:08Z)>>

 * nobody: [[https://launchpad.net/products/perlqt/trunk|perlqt/trunk]] <<BR>> :pserver:anonymous@perlqt.cvs.sourceforge.net:/cvsroot/perlqtM PerlQt-3 <<BR>> <<Date(2007-08-15T10:21:25Z)>>

 * nobody: [[https://launchpad.net/products/yatul-cash/trunk|yatul-cash/trunk]] <<BR>> http://tools.assembla.com/svn/yatul/python/cash <<BR>> <<Date(2007-08-15T10:52:55Z)>>

 * nobody: [[https://launchpad.net/products/pedagogy-planner/trunk|pedagogy-planner/trunk]] <<BR>> svn+ssh://unix.rn.informatics.scitech.sussex.ac.uk/research/hct/ideas/riddles/darren/svnroots/lpp/trunk/java <<BR>> <<Date(2007-11-15T12:14:18Z)>>

 * nobody: [[https://launchpad.net/products/ereports/trunk|ereports/trunk]] <<BR>> http://tools.assembla.com/svn/ccD8lSyLCr3lfrabIlDkbG <<BR>> <<Date(2007-11-15T12:14:18Z)>>

 * nobody: [[https://launchpad.net/products/warsow/0.4|warsow/0.4]] <<BR>> svn://70.86.44.155/warsow/trunk <<BR>> <<Date(2008-01-04T17:00:24Z)>>

== [svn] svn:special with bad file content ==

 * nobody: [[https://launchpad.net/ascend/trunk|ascend/trunk]] <<BR>> http://ascendsvn.cheme.cmu.edu/ascend/code/trunk <<BR>> <<Date(2007-04-16T15:53:28Z)>>

http://ascendsvn.cheme.cmu.edu/ascend/code/trunk/pygtk/interface/config.guess@416 has svn:special set but contains real source, instead of special content.

== [svn] ClientError: Code: 00020f58 ==

Cryptic and mysterious error from libsvn. Completely reproducible.

Failure reproduced on <<Date(2007-04-05T17:54:02Z)>>.
{{{
WARNING: change 166
Traceback (most recent call last):
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 67, in ?
    main()
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 64, in main
    doer.runMethod(method, dirname)
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 57, in runMethod
    getattr(self._job, method)(logger=self.logger, dir=dirname)
  File "/home/importd/dists/launchpad/lib/importd/Job.py", line 188, in runJob
    strategy(self, dir, logger)
  File "/home/importd/dists/launchpad/lib/importd/JobStrategy.py", line 102, in Import
    self.runtobaz("-SI", "%s.1" % aJob.branchfrom, target_path, logger)
  File "/home/importd/dists/launchpad/lib/importd/JobStrategy.py", line 86, in runtobaz
    totla.totla(config, logger, config.args, self.sourceTree())
  File "/home/importd/dists/launchpad/lib/cscvs/cmds/totla.py", line 261, in totla
    apply_changeset(source_tree, logger, apply, revision, target_tree, revisions)
  File "/home/importd/dists/launchpad/lib/cscvs/cmds/totla.py", line 129, in apply_changeset
    fileChange.apply(logger, target_tree, prune)
  File "/home/importd/dists/launchpad/lib/svn_oo/PresentFile.py", line 27, in apply
    self.url(), self.revision)
  File "/home/importd/dists/launchpad/lib/svn_oo/util.py", line 90, in writeFile
    client.cat(url, revision=revision.rev),
pysvn._pysvn.ClientError: Code: 00020f58
program finished with exit code 1
}}}

 * nobody: [[https://launchpad.net/products/cups/main|cups/main]] <<BR>> http://svn.easysw.com/public/cups/trunk <<BR>> <<Date(2006-11-29T10:08:15Z)>>
   * On full-tree import of initial revision

 * nobody: [[https://launchpad.net/products/pdns/main|pdns/main]] <<BR>> svn://svn.powerdns.com/pdns/trunk/pdns <<BR>> <<Date(2008-02-13T10:08:15Z)>>
   * On full-tree import of initial revision

 * nobody: [[https://launchpad.net/scipy/trunk|scipy/trunk]] <<BR>> http://svn.scipy.org/svn/scipy/trunk <<BR>> <<Date(2007-04-30T16:15:16Z)>>
  * On changeset 1469.

 * nobody: [[https://launchpad.net/valgrind/main|valgrind/main]] <<BR>> svn://svn.valgrind.org/valgrind/trunk <<BR>> [<<Date(2007-06-25T14:18:35Z)>>]
  * On changeset 1919.

 * nobody: [[https://launchpad.net/selenium-rc/trunk|selenium-rc/trunk]] <<BR>> http://svn.openqa.org/svn/selenium-rc/trunk <<BR>> <<Date(2007-08-06T16:20:35Z)>>
  * On changeset 43.

 * nobody: [[https://launchpad.net/products/matchbox-window-manager/trunk|matchbox-window-manager/trunk]] <<BR>> http://svn.o-hand.com/repos/matchbox/trunk/matchbox-window-manager <<BR>> <<Date(2007-08-24T20:31:07Z)>>
  * On first changeset (653).

 * nobody: [[https://launchpad.net/products/geotools-mirror/trunk|geotools-mirror/trunk]] <<BR>> http://svn.geotools.org/geotools/trunk/gt <<BR>> <<Date(2007-10-09T08:13:18Z)>>

<<Anchor(ext-method)>>
== [cvs] unsupported connection method 'ext' ==

Regression in cscvs for the support of the :ext: connection method. Example traceback:

{{{
WARNING: CVS checkout: ['cvs', '-q', '-d', ':ext:anoncvs@anoncvs.mindrot.org:/cvs', 'co', '-Pd', 'cvsworking', 'openssh']
WARNING: checking out: 32 kB
WARNING: checking out: 1380 kB
WARNING: checking out: 2892 kB
CRITICAL: Repository base not available -- catalog created with an older cscvs? Rebuilding
ERROR: protocol initialisation failed: Error: unsupported connection method 'ext'
Traceback (most recent call last):
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 67, in ?
    main()
[...]
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/__init__.py", line 620, in newCatalog
    if self.repository().protocol() is not None:
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/__init__.py", line 335, in protocol
    self._initProtocol()
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/__init__.py", line 278, in _initProtocol
    self._protocol.initialiseServer()
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/__init__.py", line 1114, in initialiseServer
    self._sendList([ "Root %s" % self._repository,
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/__init__.py", line 1045, in _sendList
    self._connection.writeline(line);
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/protocol.py", line 393, in writeline
    self._get_write_pipe().write("%s\n" % line)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/protocol.py", line 320, in _get_write_pipe
    return self._get_pipes()[1]
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/protocol.py", line 310, in _get_pipes
    raise Connection.Error(
CVS.protocol.Error: unsupported connection method 'ext'
}}}

 * [[https://beta.launchpad.net/~kamion|kamion]]: [[https://beta.launchpad.net/openssh/main|openssh/main]] <<BR>> :ext:anoncvs@anoncvs.mindrot.org:/cvs openssh MAIN <<BR>> <<Date(2007-04-30T16:27:36Z)>>

 * nobody: [[https://launchpad.net/octave/trunk|octave/trunk]] <<BR>> :ext:anoncvs@www.octave.org:/cvs octave MAIN <<BR>> [<<Date(2008-02-19T23:51:13Z)>>]

<<Anchor(extssh-method)>>
== [cvs] unsupported connection method 'extssh' ==

Launchpad doesn't have your keys.

 * nobody: [[https://launchpad.net/products/atp/trunk|atp/trunk]] <<BR>> :extssh:shaolin@login.logic.at:/home/cutelim/cvs ATP <<BR>> <<Date(2008-01-03T14:14:40Z)>>

== [svn] REPORT request failed (200 OK) ==

 * On initial build of http://jeliot3.googlecode.com/svn/trunk
{{{
command '['/usr/bin/python2.4', '/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py', u'jeliot-jeliot3-trunk', 'runJob', '.']' in dir /home/importd/dists/launchpad/botslave [63147 453694]
WARNING: N changeset 1
Traceback (most recent call last):
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 67, in ?
    main()
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 64, in main
    doer.runMethod(method, dirname)
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 57, in runMethod
    getattr(self._job, method)(logger=self.logger, dir=dirname)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/Job.py", line 189, in runJob
    strategy(self, dir, logger)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 108, in Import
    self._importIncrementally(target_path)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 153, in _importIncrementally
    self.runtobaz("-SC", "%s::" % lastCommit, target_path, self.logger)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 86, in runtobaz
    totla.totla(config, logger, config.args, self.sourceTree())
  File "/srv/importd.ubuntu.com/dists/launchpad/scripts/../lib/cscvs/cmds/totla.py", line 243, in totla
    for revision in apply.rangeParser.getRevisionIterator():
  File "/srv/importd.ubuntu.com/dists/launchpad/scripts/../lib/svn_oo/RevisionRangeParser.py", line 64, in getRevisionIterator
    for revision in self.revisionsFromRange(start, end):
  File "/srv/importd.ubuntu.com/dists/launchpad/scripts/../lib/svn_oo/RevisionRangeParser.py", line 141, in revisionsFromRange
    discover_changed_paths=True)
pysvn._pysvn.ClientError: REPORT request failed on '/svn/!svn/bc/784/trunk'
REPORT of '/svn/!svn/bc/784/trunk': 200 OK (http://jeliot3.googlecode.com)
program finished with exit code 1
}}}


== Problems with unicode filename ==

https://bugs.launchpad.net/launchpad-cscvs/+bug/114034

 * noone: [[https://launchpad.net/products/abiword/trunk|abiword/trunk]] <<BR>> :pserver:anoncvs:anoncvs@anoncvs.abisource.com:/cvsroot abi MAIN <<BR>> <<Date(2007-05-11T13:58:11Z)>>

 * nobody: [[https://launchpad.net/products/abiword/trunk|abiword/trunk]] <<BR>> http://svn.abisource.com/abiword/trunk <<BR>> <<Date(2007-06-04T18:06:19Z)>>
  * Changeset 2616

{{{
  File "/home/importd/dists/launchpad/lib/svn_oo/util.py", line 80, in addFile
    writeFile(target_tree, relpath, url, revision)
  File "/home/importd/dists/launchpad/lib/svn_oo/util.py", line 91, in writeFile
    filemode(url, revision))
  File "/home/importd/dists/launchpad/lib/SCM/__init__.py", line 203, in write_file_breaking_links
    os.unlink(newname)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa7' in position 96: ordinal not in range(128)
}}}

 * nobody: [[https://launchpad.net/products/freetrain/trunk|freetrain/trunk]] <<BR>> https://freetrain.svn.sourceforge.net/svnroot/freetrain/trunk <<BR>> <<Date(2007-08-24T18:58:43Z)>>

 * nobody: https://launchpad.net/blueproximity/trunk <<BR>> https://blueproximity.svn.sourceforge.net/svnroot/blueproximity/branches/trunk [[BR] failure at https://importd-buildbot.launchpad.net/hoover/status/blueproximity-trunk/events/6/log
Line 223: Line 498:
 * nobody: [https://launchpad.net/products/dtv/trunk dtv/trunk] [[BR]] https://svn.participatoryculture.org/svn/dtv/trunk [[BR]] [[[Date(2006-10-23T16:19:12Z)]]]
   * On checkout (yeah, tested with actually "svn co" on command line) [[BR]] `REPORT request failed on '/svn/dtv/!svn/vcc/default'` [[BR]] `REPORT of '/svn/dtv/!svn/vcc/default': Could not read chunk delimiter: Secure connection truncated (https://svn.participatoryculture.org)`

 * nobody: [https://launchpad.net/products/cups/main cups/main] [[BR]] http://svn.easysw.com/public/cups/trunk [[BR]] [[Date(2006-11-29T10:08:15Z)]]
   * On full-tree import of initial revision

{{{
WARNING: change 161
WARNING: change 166
 * nobody: [[https://launchpad.net/products/dtv/trunk|dtv/trunk]] <<BR>> https://svn.participatoryculture.org/svn/dtv/trunk <<BR>> [<<Date(2006-10-23T16:19:12Z)>>]
   * On checkout (yeah, tested with actually "svn co" on command line) <<BR>> `REPORT request failed on '/svn/dtv/!svn/vcc/default'` <<BR>> `REPORT of '/svn/dtv/!svn/vcc/default': Could not read chunk delimiter: Secure connection truncated (https://svn.participatoryculture.org)` -- some online references are http://readlist.com/lists/subversion.tigris.org/users/4/20216.html and http://www.ohloh.net/forums/10/topics/1242

== Failed to fork, memory error ==

Some large imports fail to os.fork() (when spawning gpg to sign a revision) with "OSError: [Errno 12] Cannot allocate memory". It's not clear why that happen, since Linux should overcommit memory up to 50x (the value of /proc/sys/vm/overcommit_ratio) and allow large processes like cscvs to spawn small processes like gpg.

 * [[https://launchpad.net/people/jbailey|jbailey]]: https://launchpad.net/products/glibc/head <<BR>> :pserver:anoncvs`@`sources.redhat.com:/cvs/glibc glibc <<BR>> [<<Date(2006-08-29T10:36:24Z)>>]
   * On changeset MAIN.15819

== [svn] mystery 403 ==

It may be that the server has DOS protection, and thinks we're attacking it.

 * nobody : https://launchpad.net/parrot/trunk <<BR>> http://svn.perl.org/parrot/trunk <<BR>> [<<Date(2007-07-18T11:50:41Z)>>]

{{{
WARNING: N changeset 531
Line 241: Line 525:
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 100, in Import
    self.runtobaz("-SI", "%s.1" % aJob.branchfrom, target_path, logger)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 84, in runtobaz
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 108, in Import
    self._importIncrementally(target_path)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 153, in _importIncrementally

    self.runtobaz("-SC", "%s::" % lastCommit, target_path, self.logger)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 86, in runtobaz
Line 245: Line 531:
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/cscvs/cmds/totla.py", line 262, in totla   File "/srv/importd.ubuntu.com/dists/launchpad/lib/cscvs/cmds/totla.py", line 252, in totla
Line 247: Line 533:
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/cscvs/cmds/totla.py", line 130, in apply_changeset   File "/srv/importd.ubuntu.com/dists/launchpad/lib/cscvs/cmds/totla.py", line 122, in apply_changeset
Line 249: Line 535:
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/svn_oo/PresentFile.py", line 46, in apply
    self.url(), self.revision)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/svn_oo/util.py", line 116, in writeFile
    revision=pysvn_revision, peg_revision=pysvn_revision)
pysvn._pysvn.ClientError: Code: 00020f58
}}}

== Failed to fork, memory error ==

Some large imports fail to os.fork() (when spawning gpg to sign a revision) with "OSError: [Errno 12] Cannot allocate memory". It's not clear why that happen, since Linux should overcommit memory up to 50x (the value of /proc/sys/vm/overcommit_ratio) and allow large processes like cscvs to spawn small processes like gpg.

 * [https://launchpad.net/people/siretart siretart]: https://launchpad.net/products/mplayer/trunk [[BR]] svn://svn.mplayerhq.hu/mplayer/trunk [[BR]] [[[Date(2006-06-12T13:15:00Z)]]]
   * On changeset changeset 5343

 * [https://launchpad.net/people/jbailey jbailey]: https://launchpad.net/products/glibc/head [[BR]] :pserver:anoncvs`@`sources.redhat.com:/cvs/glibc glibc [[BR]] [[[Date(2006-08-29T10:36:24Z)]]]
   * On changeset MAIN.15819

 * [https://launchpad.net/people/carlos]: https://launchpad.net/products/elisa/trunk [[BR]] https://core.fluendo.com/elisa/svn/trunk [[BR]] [[[Date(2006-09-06T09:43:12Z)]]]
   * On changeset 7

= Fix in progress =

Failures for which a fix is currently being worked on.
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/svn_oo/PatchedFile.py", line 31, in apply
    svn_oo.util.writeFile(
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/svn_oo/util.py", line 91, in writeFile
    filemode(url, revision))
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/svn_oo/util.py", line 42, in filemode
    proplist = client.propget('svn:executable', url, revision=revision.rev)
pysvn._pysvn.ClientError: PROPFIND request failed on '/parrot/trunk/t/op/time.t'
PROPFIND of '/parrot/trunk/t/op/time.t': 403 Forbidden (http://svn.perl.org)
}}}

== Problems with filename containing .. ==

The programmatic API for adding files to a tree has different expectations than the user friendly API the command line uses ([[https://bugs.launchpad.net/bzr/+bug/132639|bug 132639]]). Depending on how this bug gets resolved, the following import could be retried after it is fixed.

 * nobody: [[https://launchpad.net/eiffelstudio/trunk|eiffelstudio/trunk]] <<BR>> https://eiffelsoftware.origo.ethz.ch/svn/es/trunk <<BR>> <<Date(2007-08-15T09:48:35Z)>>

== cvs rlog fails ==

This means the server/repo is broken.

 * nobody: [[https://launchpad.net/products/lustre/trunk|lustre/trunk]] <<BR>> :pserver:anonymous@cvs.lustre.org:/lustre lustre-core <<BR>> <<Date(2007-11-15T12:08:39Z)>>

   Fails with
   {{{
   E cvs [rlog aborted]: unexpected '\x0' reading revision number in RCS file /lustre/lustre-core/demos/Attic/snaprest.sh,v
   }}}
   after 18 megs of output.

 * nobody: [[https://launchpad.net/products/netbeans/trunk|netbeans/trunk]] <<BR>> :pserver:anoncvs@cvs.netbeans.org:/cvs core <<BR>> <<Date(2007-11-15T12:08:39Z)>>

   Fails with
   {{{
   E lock.c:223: failed assertion `strncmp (repository, current_parsed_root->directory, strlen (current_parsed_root->directory)) == 0'
   E cvs [rlog aborted]: received abort signal
   }}}
   quite rapidly.

 * nobody: [[https://launchpad.net/products/netbeans6/trunk|netbeans6/trunk]] <<BR>> :pserver:anoncvs@cvs.netbeans.org:/cvs nbbuild <<BR>> <<Date(2008-01-03T14:14:40Z)>>

== [svn] svn import sometimes thinks that changes on trunk aren't on its branch ==

See [[https://bugs.launchpad.net/launchpad-cscvs/+bug/121569|bug 121569]].

 * nobody: [[https://launchpad.net/products/gloo/trunk|gloo/trunk]] <<BR>> http://pub-svn.l4.me.uk/svn/public/gloo/trunk <<BR>> <<Date(2008-01-04T17:17:49Z)>>

== No root to host ==

 * nobody: [[https://launchpad.net/products/i2p/trunk|i2p/trunk]] <<BR>> :pserver:anoncvs@cvs.i2p.net/cvsroot/ i2p <<BR>> <<Date(2008-01-03T14:14:40Z)>>

   {{{
   connect to cvs.i2p.net(66.111.51.112):2401 failed: No route to host
   }}}

== [svn] pysvn._pysvn.ClientError: callback_ssl_server_trust_prompt required ==

 * aaron [[https://launchpad.net/ozaxe/trunk]]

Problem with SSL certificate.

== [svn] AttributeError: UnknownSpecialFileType instance has no attribute 'url' ==

 * aaron [[http://launchpadlibrarian.net/15454620/isomaster-trunk-log.txt]]

This page tracks requests for actions from the vcs-imports operator. To request an import, please see the instructions on VcsImports.

Note that we only do imports of MAIN branches on CVS (the form will have to be updated to remove the "branch" field).

We will handle your request and keep you informed of progress or issues. You can contact a vcs-imports operator on #launchpad on irc.libera.chat.

Note: There exists also https://dev.launchpad.net/ReviewingCodeImports, which is rather more up to date, and which this page should probably go away in favour of.



Incoming

Blocked

Imports that are currently failing: https://code.launchpad.net/+code-imports?field.review_status=FAILING

Number failing by type on 2011-04-08:

  • CVS: 434
  • Subversion via CSCVS: 451
  • Subversion via bzr-svn: 80
  • Git: 108
  • Mercurial: 119

... from which we may conclude that CSCVS is A Problem :-)

[svn] svn_subst_translate_stream3

Imports that failed with the following error:

python2.4: /build/buildd/subversion-1.3.1/subversion/libsvn_subr/subst.c:809: svn_subst_translate_stream3: Assertion `eol_str || keywords' failed.
process killed by signal 6

It looks like a problem in the svn code for keyword expansion.

[svn] bogus repository root detection

Bug 156744.

[svn] unreliable server

The current svn import code makes many connections and does not retry when one fails. If the server is in the least unreliable (one failure every few thousand attempts to create a session) that will cause the import to fail.

See bug 120992 (use persistent svn_ra sessions and reconnect on failure).

It could be that some of these failures are caused by another specific bug. From a discussion with Jelmer:

> > >    * Don't rely on listdir() kind results. Fixes imports of several
> > >      repositories. (#56647)
> > I'm curious about this bug. Can you tell me more?
> It turned out that the .kind member of dirents returned by
> svn.ra.get_dir2() is (semi-?)random when used against older Subversion
> servers. It would occasionally be 1 (svn.core.svn_node_file) even though
> the entry in question was a directory. This took me a while to track
> down. Instead, I've switched to always trying to open something as a
> directory and catching the appropriate exception that indicates it's a
> file.

That's very interesting. A number of Launchpad imports fail in a not-deterministic way with "failed REPORT". Currently I just classify those failures as "unreliable server", but I was puzzled by a pattern I noticed: the failures did not happen in a really random way.

It might be the same bug.

[svn] pysvn._pysvn.ClientError: Connection closed unexpectedly

[svn] pysvn._pysvn.ClientError: Malformed network data

[svn] import stalls, or is too slow

The import system will kill any job that does produce output for "a long time" (4 hours, at time of writing, on 2007-02-15). So if, for some reason, an import does not report progress for a long time, either because it is stuck or because it is really slow, it will fail.

[cvs] failed to open the modules file

cscvs needs to read the modules file to ignore configs (aka externals, nested trees).

$ cvs -d :pserver:guest:guest@mozdev.org:/cvs co -c
cvs [checkout aborted]: failed to open the modules file

[cvs] file created by merge

  • seb128: https://launchpad.net/products/epiphany-browser/main
    :pserver:anonymous@anoncvs.gnome.org:/cvs/gnome epiphany
    [2006-10-16]

    • On changeset MAIN.67
      ValueError: attempt to patch non extant file : data/ui/epiphany-toolbar.xml.in

    • The cscvs log (with changesets) first mentions epiphany-toolbar at changeset MAIN.67, it refers to revision 1.2 of this file and records it as a 'M' (modification), which fails to apply since the file is not present in the imported tree at this point.

Relevant fragment of the cvs log:

$ cvs rlog epiphany/data\/ui/epiphany-toolbar.xml.in

RCS file: /cvs/gnome/epiphany/data/ui/Attic/epiphany-toolbar.xml.in,v
head: 1.17
branch:
locks: strict
access list:
symbolic names:
[...]
        eog-menu-api: 1.1.0.2
keyword substitution: kv
total revisions: 19;    selected revisions: 19
description:
----------------------------
[...]
----------------------------
revision 1.2
date: 2003/01/20 18:57:15;  author: mpeseng;  state: Exp;  lines: +15 -0
2003-01-20  Marco Pesenti Gritti  <marco@it.gnome.org>

        * Merge eog-menu-api branch
----------------------------
revision 1.1
date: 2003/01/20 17:53:25;  author: mpeseng;  state: dead;
branches:  1.1.2;
file epiphany-toolbar.xml.in was initially added on branch eog-menu-api.
----------------------------
revision 1.1.2.1
date: 2003/01/20 17:53:25;  author: mpeseng;  state: Exp;  lines: +15 -0
implement context menus
----------------------------
[...]

[svn] Cannot import whole repository

The svn import code fails at processing imports at the root of a svn repository. Some repository are set up that way, with the actual root containing the source code. That's broken, but people actually do this.

See bug 145240.

[cvs] None branch in findLastFileRevision

While creating changesets: assertion error, branchName is None in findLastFileRevision CVS/CacheGenerator.py:160

It looks like it means something is really busted with filler revisions and default branches.

File name not supported by bzr

This is bzr bug #58180. When/if that gets fixed, all these could be retried.

[cvs] Absurd filler revision

  • nobody: xrms/trunk
    :pserver:anonymous@xrms.cvs.sourceforge.net:/cvsroot/xrms/ xrms
    [2006-09-29]

    • on changeset MAIN.4167:
      CRITICAL: requested checkout of reporoot '/cvsroot/xrms', file 'xrms/include/adodb/pear/Attic/readme.Auth.txt', revision '1.1.1.2'
      CRITICAL: log of checkout responses follow.
      CRITICAL: "E cvs checkout: cannot find module
      `xrms/include/adodb/pear/Attic/readme.Auth.txt' - ignored\n"
      CRITICAL: 'error \n'

    • cscvs creates a filler changeset 1.1->1.1.1.2 for include/adodb/pear/readme.Auth.txt, but there is no revision 1.1.1.2 for that file. The cvs rlog shows revision 1.1 (branches: 1.1.1) used in changeset MAIN.915, revision 1.1.1.1, not used by cscvs. The cvs log header for that file reads "head: 1.1" and "branch: 1.1.1".

lifeless suggests:

(15:28:25) lifeless: I'd do a search in the file revision table for that file, all revisions, see what cscvs is thinking happened to it
(15:29:45) ddaa: you suggest it might be a problem in the log parser and checking the catalog contents would help narrowing the cause of the problem?
(15:33:11) lifeless: something is inventing the .2
(15:33:22) lifeless: if its in the catalog then the catalog generator can be checked
(15:33:42) lifeless: if its not in the catalog then the application-of-changesets can be checked
(15:33:45) lifeless: it will narrow it down
(15:34:03) lifeless: As its a very small rlog I'd make a test case from it

[svn] repository password protected

[svn] svn:special with bad file content

http://ascendsvn.cheme.cmu.edu/ascend/code/trunk/pygtk/interface/config.guess@416 has svn:special set but contains real source, instead of special content.

[svn] ClientError: Code: 00020f58

Cryptic and mysterious error from libsvn. Completely reproducible.

Failure reproduced on 2007-04-05.

WARNING: change 166
Traceback (most recent call last):
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 67, in ?
    main()
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 64, in main
    doer.runMethod(method, dirname)
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 57, in runMethod
    getattr(self._job, method)(logger=self.logger, dir=dirname)
  File "/home/importd/dists/launchpad/lib/importd/Job.py", line 188, in runJob
    strategy(self, dir, logger)
  File "/home/importd/dists/launchpad/lib/importd/JobStrategy.py", line 102, in Import
    self.runtobaz("-SI", "%s.1" % aJob.branchfrom, target_path, logger)
  File "/home/importd/dists/launchpad/lib/importd/JobStrategy.py", line 86, in runtobaz
    totla.totla(config, logger, config.args, self.sourceTree())
  File "/home/importd/dists/launchpad/lib/cscvs/cmds/totla.py", line 261, in totla
    apply_changeset(source_tree, logger, apply, revision, target_tree, revisions)
  File "/home/importd/dists/launchpad/lib/cscvs/cmds/totla.py", line 129, in apply_changeset
    fileChange.apply(logger, target_tree, prune)
  File "/home/importd/dists/launchpad/lib/svn_oo/PresentFile.py", line 27, in apply
    self.url(), self.revision)
  File "/home/importd/dists/launchpad/lib/svn_oo/util.py", line 90, in writeFile
    client.cat(url, revision=revision.rev),
pysvn._pysvn.ClientError: Code: 00020f58
program finished with exit code 1

[cvs] unsupported connection method 'ext'

Regression in cscvs for the support of the :ext: connection method. Example traceback:

WARNING: CVS checkout: ['cvs', '-q', '-d', ':ext:anoncvs@anoncvs.mindrot.org:/cvs', 'co', '-Pd', 'cvsworking', 'openssh']
WARNING: checking out: 32 kB
WARNING: checking out: 1380 kB
WARNING: checking out: 2892 kB
CRITICAL: Repository base not available -- catalog created with an older cscvs? Rebuilding
ERROR: protocol initialisation failed: Error: unsupported connection method 'ext'
Traceback (most recent call last):
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 67, in ?
    main()
[...]
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/__init__.py", line 620, in newCatalog
    if self.repository().protocol() is not None:
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/__init__.py", line 335, in protocol
    self._initProtocol()
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/__init__.py", line 278, in _initProtocol
    self._protocol.initialiseServer()
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/__init__.py", line 1114, in initialiseServer
    self._sendList([ "Root %s" % self._repository,
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/__init__.py", line 1045, in _sendList
    self._connection.writeline(line);
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/protocol.py", line 393, in writeline
    self._get_write_pipe().write("%s\n" % line)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/protocol.py", line 320, in _get_write_pipe
    return self._get_pipes()[1]
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/CVS/protocol.py", line 310, in _get_pipes
    raise Connection.Error(
CVS.protocol.Error: unsupported connection method 'ext'

[cvs] unsupported connection method 'extssh'

Launchpad doesn't have your keys.

[svn] REPORT request failed (200 OK)

command '['/usr/bin/python2.4', '/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py', u'jeliot-jeliot3-trunk', 'runJob', '.']' in dir /home/importd/dists/launchpad/botslave [63147 453694]
WARNING: N changeset 1
Traceback (most recent call last):
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 67, in ?
    main()
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 64, in main
    doer.runMethod(method, dirname)
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 57, in runMethod
    getattr(self._job, method)(logger=self.logger, dir=dirname)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/Job.py", line 189, in runJob
    strategy(self, dir, logger)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 108, in Import
    self._importIncrementally(target_path)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 153, in _importIncrementally
    self.runtobaz("-SC", "%s::" % lastCommit, target_path, self.logger)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 86, in runtobaz
    totla.totla(config, logger, config.args, self.sourceTree())
  File "/srv/importd.ubuntu.com/dists/launchpad/scripts/../lib/cscvs/cmds/totla.py", line 243, in totla
    for revision in apply.rangeParser.getRevisionIterator():
  File "/srv/importd.ubuntu.com/dists/launchpad/scripts/../lib/svn_oo/RevisionRangeParser.py", line 64, in getRevisionIterator
    for revision in self.revisionsFromRange(start, end):
  File "/srv/importd.ubuntu.com/dists/launchpad/scripts/../lib/svn_oo/RevisionRangeParser.py", line 141, in revisionsFromRange
    discover_changed_paths=True)
pysvn._pysvn.ClientError: REPORT request failed on '/svn/!svn/bc/784/trunk'
REPORT of '/svn/!svn/bc/784/trunk': 200 OK (http://jeliot3.googlecode.com)
program finished with exit code 1

Problems with unicode filename

https://bugs.launchpad.net/launchpad-cscvs/+bug/114034

  File "/home/importd/dists/launchpad/lib/svn_oo/util.py", line 80, in addFile
    writeFile(target_tree, relpath, url, revision)
  File "/home/importd/dists/launchpad/lib/svn_oo/util.py", line 91, in writeFile
    filemode(url, revision))
  File "/home/importd/dists/launchpad/lib/SCM/__init__.py", line 203, in write_file_breaking_links
    os.unlink(newname)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa7' in position 96: ordinal not in range(128)

Unknown failures

Failed to fork, memory error

Some large imports fail to os.fork() (when spawning gpg to sign a revision) with "OSError: [Errno 12] Cannot allocate memory". It's not clear why that happen, since Linux should overcommit memory up to 50x (the value of /proc/sys/vm/overcommit_ratio) and allow large processes like cscvs to spawn small processes like gpg.

[svn] mystery 403

It may be that the server has DOS protection, and thinks we're attacking it.

WARNING: N changeset 531
Traceback (most recent call last):
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 67, in ?
    main()
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 64, in main
    doer.runMethod(method, dirname)
  File "/home/importd/dists/launchpad/lib/importd/CommandLineRunner.py", line 57, in runMethod
    getattr(self._job, method)(logger=self.logger, dir=dirname)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/Job.py", line 188, in runJob
    strategy(self, dir, logger)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 108, in Import
    self._importIncrementally(target_path)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 153, in _importIncrementally
    self.runtobaz("-SC", "%s::" % lastCommit, target_path, self.logger)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/importd/JobStrategy.py", line 86, in runtobaz
    totla.totla(config, logger, config.args, self.sourceTree())
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/cscvs/cmds/totla.py", line 252, in totla
    apply_changeset(source_tree, logger, apply, revision, target_tree, revisions)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/cscvs/cmds/totla.py", line 122, in apply_changeset
    fileChange.apply(logger, target_tree, prune)
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/svn_oo/PatchedFile.py", line 31, in apply
    svn_oo.util.writeFile(
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/svn_oo/util.py", line 91, in writeFile
    filemode(url, revision))
  File "/srv/importd.ubuntu.com/dists/launchpad/lib/svn_oo/util.py", line 42, in filemode
    proplist = client.propget('svn:executable', url, revision=revision.rev)
pysvn._pysvn.ClientError: PROPFIND request failed on '/parrot/trunk/t/op/time.t'
PROPFIND of '/parrot/trunk/t/op/time.t': 403 Forbidden (http://svn.perl.org)

Problems with filename containing ..

The programmatic API for adding files to a tree has different expectations than the user friendly API the command line uses (bug 132639). Depending on how this bug gets resolved, the following import could be retried after it is fixed.

cvs rlog fails

This means the server/repo is broken.

  • nobody: lustre/trunk
    :pserver:anonymous@cvs.lustre.org:/lustre lustre-core
    2007-11-15

    • Fails with
         E cvs [rlog aborted]: unexpected '\x0' reading revision number in RCS file /lustre/lustre-core/demos/Attic/snaprest.sh,v
      after 18 megs of output.
  • nobody: netbeans/trunk
    :pserver:anoncvs@cvs.netbeans.org:/cvs core
    2007-11-15

    • Fails with
         E lock.c:223: failed assertion `strncmp (repository, current_parsed_root->directory, strlen (current_parsed_root->directory)) == 0'
         E cvs [rlog aborted]: received abort signal
      quite rapidly.
  • nobody: netbeans6/trunk
    :pserver:anoncvs@cvs.netbeans.org:/cvs nbbuild
    2008-01-03

[svn] svn import sometimes thinks that changes on trunk aren't on its branch

See bug 121569.

No root to host

[svn] pysvn._pysvn.ClientError: callback_ssl_server_trust_prompt required

Problem with SSL certificate.

[svn] AttributeError: UnknownSpecialFileType instance has no attribute 'url'

VcsImportRequests (last edited 2021-05-27 14:19:59 by cjwatson)