ticket,summary,component,version,milestone,type,owner,status,created,_changetime,_description,_reporter
78,git source bzr target fails at git rev-list HEAD due to wrong arguments,git,0.9,VersionOne,defect,lele,new,2006-09-19T14:19:57+02:00,2007-04-02T15:40:13+02:00,"When trying to do a conversion from git to bzr, I ran into a problem and it crashed early in the process. As I happened to spend the morning with one of the Bazaar-NG hackers, Robert Collins, we paired on it for half an hour and he quickly traced the source.

When the git importer runs, the first thing it does is clone the source repository to a local checkout. However, a subsequent command, `git rev-list HEAD`, breaks. Step debugging through, Robert discovered that rather than the temporary clone, it was trying to use the old directory (and wrongly at that - no /.git was joined) - in other words, `GIT_DIR=` was set wrong.

Unfortunately he then started navigating all over the place so I'm not sure precisely where it was he discovered the problem, but he did a hot replace and it then succeeded (Well, for about 30 changesets (and then some other bug snagged it. Alas) My suspicion is that he was in the neighbourhood of lines 42-65 of `vcpx/repository/git/__init__.py`

I'm really sorry I can't be more precise, but hopefully that will spurn investigation in the right direction.

AfC
Sydney



The config file was whatever tailor generated with a very simple `tailor -v -s git -R ~/workspace/SlashTime/ -t bzr -T ~/tmp/slashtime-bzr`:

{{{
[DEFAULT]
verbose = True

[project]
target = bzr:target
start-revision = INITIAL
root-directory = /home/andrew/tmp/tailor-data
state-file = tailor.state
source = git:source
subdir = .

[bzr:target]
repository = /home/andrew/tmp/slashtime-bzr

[git:source]
repository = /home/andrew/workspace/SlashTime/
}}}",afcowie
21,changeset.entries populated incorrectly in bootstrap from other than INITIAL revision,tailor,0.9,VersionOne,defect,lele,new,2005-12-08T18:17:33+01:00,2007-04-06T07:42:59+02:00,"If you bootstrap from some revision other than INITIAL (or r1 for svn source, or such), then your hook will be called with changeset.entries showing which files were touched in this revision.  This is the wrong value for bootstrap -- your hook wants to process all files that are touched in the first revision in the target, if you see what I mean, not just all files that are touched in the bootstrap revision in the source.",anonymous
26,cvs -> hglib: incomplete tag conversion,cvs,0.9,VersionOne,defect,lele,reopened,2005-12-28T21:10:46+01:00,2007-04-02T15:45:02+02:00,"tailor v. 0.9.20[[BR]]
mercurial v 0.7

The project has the following explicitly specified tags:

{{{
% cvs history -T -n enwtsum 
T 1999-02-08 15:20 +0000 dj enwtsum [D19990208:A]
T 1999-02-08 16:30 +0000 dj enwtsum [D19990208:A]
}}}

as well as those provided by CVS upon import of the project (in this case dj and initial).

Here's the tailor config file

{{{
[DEFAULT]
verbose = True

[project]
target = hglib:target
start-revision = INITIAL
root-directory = /proj/axaf/simul/src/hg
state-file = tailor.state
source = cvs:source
patch-name-format =

[hglib:target]

[cvs:source]
repository = /proj/axaf/simul/src/cvs
subdir = original
}}}

after conversion mercurial only sees one of the CVS tags:

{{{
% hg tags 
tip                                7:483ba6878c07f8f9d1cf961da29829d4351a0510
initial                            3:a338b036cb7c63609979f65d8848c56f97a1b7a3

}}}",djerius@…
35,Getting error while trying to do a two way sync between CVS and darcs.,tailor,0.9,VersionOne,defect,lele,new,2006-02-10T19:49:55+01:00,2006-02-13T01:54:25+01:00,"Hi,

I tried out tailor on a new test CVS repository which I created just for testing. The CVS->darcs direction syncing works fine, but when I try the sync in the darcs->CVS direction, I get problems. It looks like tailor calls `cvs rlog` with a buggy time stamp causing the problem.

I am attaching a sample test-run of what I tried. Hopefully this makes things clearer. The actual error message from CVS is towards the end.

Thank you,
Regards,
Srinath",srinathava@…
56,cvsps source cannot read patches from a branch,cvsps,0.9,VersionOne,defect,lele,new,2006-06-05T23:42:31+02:00,2006-06-30T19:47:57+02:00,"Using this config:
{{{
[DEFAULT]
patch-name-format=%(firstlogline)s
remove-first-log-line=True
# that one seems necessary to force ordering
projects = trunk-pull, branch-pull

[trunk-pull]
root-directory = /export/work/yann/tailor/test/rootps
source = cvsps:bigdiesel
target = git:bigdiesel
start-revision = INITIAL
state-file = trunk-pull.state
subdir = trunk

[branch-pull]
root-directory = /export/work/yann/tailor/test/rootps
source = cvsps:bigdiesel
target = git:bigdiesel-branch
#start-revision = INITIAL
start-revision = bigloo-parser INITIAL
state-file = branch-pull.state
subdir = bigloo-parser

[cvsps:bigdiesel]
repository = :pserver:anonymous@cvs.savannah.nongnu.org:/sources/dsssl-utils
module = dsssl-utils/bigdiesel

[git:bigdiesel]

[git:bigdiesel-branch]
parent-repo = ../trunk
parent-rev = ec3b45d3733129f88422c3983b82a4fcc943a760
}}}

tailorizing ""branch-pull"" (after having tailorized trunk-pull) gives:
{{{
$ ./tailor/tailor -v --configfile test/bigdiesel-cvsps.tailor 
23:42:49 [I] Updating ""trunk-pull"" in ""/export/work/yann/tailor/test/rootps""
23:42:49 [I] $ cvsps --cvs-direct -u -b HEAD --root :pserver:anonymous@cvs.savannah.nongnu.org:/sources/dsssl-utils dsssl-utils/bigdiesel
23:42:52 [I] [Ok]
23:42:52 [I] Cached information about 0 pending changesets
23:42:52 [I] Update completed with no upstream changes
23:42:52 [I] Bootstrapping ""branch-pull"" in ""/export/work/yann/tailor/test/rootps""
23:42:52 [I] /export/work/yann/tailor/test/rootps/bigloo-parser $ git clone --shared -n ../trunk tmp
23:42:52 [I] [Ok]
23:42:52 [I] /export/work/yann/tailor/test/rootps/bigloo-parser $ git reset --soft bigloo-parser_branchpoint
23:42:52 [I] [Ok]
23:42:52 [C] Checkout of branch-pull failed!
Traceback (most recent call last):
  File ""./tailor/tailor"", line 33, in ?
    main()
  File ""/export/work/yann/tailor/tailor/vcpx/tailor.py"", line 334, in main
    tailorizer()
  File ""/export/work/yann/tailor/tailor/vcpx/tailor.py"", line 143, in __call__
    self.bootstrap()
  File ""/export/work/yann/tailor/tailor/vcpx/tailor.py"", line 71, in bootstrap
    actual = dwd.checkoutUpstreamRevision(revision)
  File ""/export/work/yann/tailor/tailor/vcpx/source.py"", line 245, in checkoutUpstreamRevision
    last = self._checkoutUpstreamRevision(revision)
  File ""/export/work/yann/tailor/tailor/vcpx/cvsps.py"", line 310, in _checkoutUpstreamRevision
    csets = self.getPendingChangesets(revision)
  File ""/export/work/yann/tailor/tailor/vcpx/source.py"", line 213, in getPendingChangesets
    self.state_file.setPendingChangesets(changesets)
  File ""/export/work/yann/tailor/tailor/vcpx/statefile.py"", line 253, in setPendingChangesets
    self._write(changesets)
  File ""/export/work/yann/tailor/tailor/vcpx/statefile.py"", line 86, in _write
    for cs in changesets:
  File ""/export/work/yann/tailor/tailor/vcpx/cvsps.py"", line 160, in _getUpstreamChangesets
    sincerev = int(sincerev)
ValueError: invalid literal for int(): bigloo-parser
}}}

Requesting the trunk instead of the branch does not show this failure.",ydirson
60,fails to let bzr know of all files on a baz import,tla,0.9,VersionOne,defect,lele,new,2006-06-15T23:46:55+02:00,2006-06-16T16:09:28+02:00,"  Hi,
  There is a Debian bug report about a problem when converting baz->bzr:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=369699

  Following the indication of the submitter, I can reproduce its bug.
I tried with the latest (development) version of tailor, but then the
test fails at the begining (it seems that the bzr repository is not
correctly created...)
  If someone kowns how to correct this...

  Best regards,
    Vincent",Vincent.Danjean@…
63,"tailor gets confused by cvs 1.12 ""phantom commits""",cvs,0.9,VersionOne,defect,lele,new,2006-06-23T11:31:24+02:00,2006-06-23T11:31:24+02:00,"Similarly to cvsps (see http://bugs.debian.org/369872), the cvs backend in tailor gets confused by empty commits with bogus timestamp added by recent cvs versions.  Although the timestamp issue at least is probably a bug in cvs (see http://bugs.debian.org/369870), there are now cvs repositories in the wild which exhibit the problem, and it would be a shame to let people trapped in cvs because of this :)

What happens is that tailor uses the timestamp of the bogus commit to checkout the initial version from the branch, but since the timestamp is bogus, it checks out an empty working copy, and then correctly gets confused.

Message is:

{{{
Checkout of v30-pull failed!
Cannot handle empty repositories. Maybe wrong module/repository?: The working copy '/homelocal/ydirson/test/root/v30-in' of the CVS repository seems empty, don't know how to deal with that.
}}}
",ydirson
69,git to darcs broken in multiple ways,git,0.9,VersionOne,defect,lele,new,2006-08-10T20:39:18+02:00,2006-08-15T19:25:53+02:00,"This is with 0.9.23.

I am using tailor to convert a Linux kernel repo over to darcs.

After awhile, I see:
{{{
12:57:22 [I] [Ok]
12:57:22 [I] /home/jgoerzen/work/git2/work $ git rev-list --max-count=1 v2.6.17.7
12:57:22 [I] [Ok]
12:57:22 [I] /home/jgoerzen/work/git2/work $ git rev-list --max-count=1 v2.6.17.8
12:57:22 [I] [Ok]
12:57:22 [I] /home/jgoerzen/work/git2/work $ git rev-list --max-count=1 excel-2.6.16.27-before-backports
12:57:22 [I] [Ok]
12:57:22 [I] Updating to revision 6b9269abd64c54f11dc4aaf162d2915fccae6c77
12:57:22 [I] /home/jgoerzen/work/git2/work $ git rev-list --pretty=raw --max-count=1 6b9269abd64c54f11dc4aaf162d2915fccae6c77
12:57:22 [I] [Ok]
12:57:22 [I] /home/jgoerzen/work/git2/work $ git diff-tree --root -r -M --name-status ad6571a78ac74e9fa27e581834709067dba459af 6b9269abd64c54f11dc4aaf162d2915fccae6c77
12:57:22 [I] [Ok]
12:57:22 [C] Unable to get changes for ""project""
Traceback (most recent call last):
  File ""/usr/bin/tailor"", line 33, in ?
    main()
  File ""/var/lib/python-support/python2.4/vcpx/tailor.py"", line 332, in main
    tailorizer()
  File ""/var/lib/python-support/python2.4/vcpx/tailor.py"", line 144, in __call__
    self.update()
  File ""/var/lib/python-support/python2.4/vcpx/tailor.py"", line 94, in update
    pendings = dwd.getPendingChangesets()
  File ""/var/lib/python-support/python2.4/vcpx/source.py"", line 213, in getPendingChangesets
    self.state_file.setPendingChangesets(changesets)
  File ""/var/lib/python-support/python2.4/vcpx/statefile.py"", line 253, in setPendingChangesets
    self._write(changesets)
  File ""/var/lib/python-support/python2.4/vcpx/statefile.py"", line 86, in _write
    for cs in changesets:
  File ""/var/lib/python-support/python2.4/vcpx/git.py"", line 58, in _getUpstreamChangesets
    yield self._changesetForRevision(rev)
  File ""/var/lib/python-support/python2.4/vcpx/git.py"", line 122, in _changesetForRevision
    e.action_kind = action_map[state[0]]
KeyError: 'C'
}}}

If I try to re-run git at this point, it will migrate a couple of changesets over, but eventually die at what appears to be a rename.

My config is:
{{{
[DEFAULT]
verbose = True

[project]
target = darcs:target
start-revision = INITIAL
root-directory = /home/jgoerzen/work/git2/work
state-file = tailor.state
source = git:source
subdir = .

[git:source]
repository = /home/jgoerzen/work/git2/linux-2.6
branch=master

[darcs:target]
repository = /home/jgoerzen/work/git2/linux-2.6-darcs
}}}",jgoerzen
70,strange git error,git,0.9,VersionOne,defect,lele,new,2006-08-10T22:06:52+02:00,2006-08-10T22:06:52+02:00,"While converting Linux kernel tree to darcs:


{{{
$ tailor -D -v --configfile git.tailor
15:05:52 [I] Updating ""project"" in ""/home/jgoerzen/work/git2/work""
15:05:52 [I] Applying pending upstream changesets
15:05:52 [I] Changeset ""97665e9c22991401dc56968619c6b8b9c09f3268""
15:05:52 [I] Log message: [PATCH] scsi: remove unused scsi_cmnd->internal_timeout field

scsi_cmnd->internal_timeout field doesn't have any meaning
anymore.  Kill the field.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
15:05:52 [I] /home/jgoerzen/work/git2/work $ git merge -n --no-commit fastforward HEAD 97665e9c22991401dc56968619c6b8b9c09f3268
git-read-tree: fatal: Entry 'drivers/scsi/scsi.c' would be overwritten by merge. Cannot merge.

No merge strategy handled the merge.
15:05:52 [W] [Status 2]
Output stream:
Merging HEAD with 97665e9c22991401dc56968619c6b8b9c09f3268
Merging:
c2a9331c62216e222a08de8dd58559367fef0af6 updates for CFQ oops fix
97665e9c22991401dc56968619c6b8b9c09f3268 [PATCH] scsi: remove unused scsi_cmnd->internal_timeout field
found 1 common ancestor(s):
a757e64cfa400391041ed7953f0290c34a820c93 [PATCH] md: remove a number of misleading calls to MD_BUG
15:05:52 [C] Couldn't apply changeset
15:05:52 [C] Upstream change application failed
Failure applying upstream changes: /home/jgoerzen/work/git2/work $ git merge -n --no-commit fastforward HEAD 97665e9c22991401dc56968619c6b8b9c09f3268 failed
jgoerzen@wile:~/work/git2$

}}}
",jgoerzen
75,tailor fails to replay one change set during librtorrent svn->monotone mirroring,tailor,0.9,VersionOne,defect,rghetta,reopened,2006-08-31T23:58:13+02:00,2006-09-16T07:11:51+02:00,Tailor failed to reply one change set during mirroring of librtorrent. Log and config files will be attached.,wilx
108,Tailor fails on SVN repo conversion,tailor,0.9,VersionOne,defect,lele,new,2007-02-28T16:31:12+01:00,2007-04-02T15:56:21+02:00,"converting the pypy repo from svn to hg fails (no details are known currently but it seems like tailor doesn't cope with the renaming/deletion history).

URL: http://codespeak.net/svn/pypy/dist/",xoraxax
109,Exception raised for one project prevent following projects to be tailored,tailor,0.9,VersionOne,defect,lele,new,2007-03-03T02:12:53+01:00,2007-03-03T02:12:53+01:00,"While tailoring multiple projects at once, defined in a common config file, if an exception is raised in a project, all project that would have been processed after it won't be processed at all.

The exception should instead be caught and logged, and following projects processed.

After all projects have been tailored, a warning could be issued that tells what projects have raised an exception...",nowhereman
139,git -> monotone conversion fails at 'git fetch',git,0.9,VersionOne,defect,lele,new,2007-07-03T23:12:07+02:00,2007-07-22T00:15:23+02:00,"When converting a git repo to monotone, it fails as seen below.  

{{{
14:38:51 [I] Bootstrap completed
14:38:51 [I] Updating ""w32fahremote"" in ""/home/xraytux/projects/conversion""
14:38:51 [I] /home/xraytux/projects/conversion/git-w32fahremote $ git fetch
fatal: 'origin': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
Cannot get the repository state from origin
14:38:51 [W] [Status 1]
14:38:51 [C] Unable to get changes for ""w32fahremote""
[xraytux@lizard conversion]$
}}}

Commenting out the 'git fetch' on line 53 of vcpx/repository/git/source.py makes the conversion work with no side effects. (although origin has to be the head of the repository, as the master ref on the source repo is moved for each revision)

Tailor Config:
(git repo is a bare repository)
{{{
[DEFAULT]
target-repository=mtn-w32.db
target-keyid=<REDACTED>
target-passphrase=<REDACTED>
verbose=True

[w32fahremote]
source = git:w32fahremote
target = monotone:w32fahremote

[git:w32fahremote]
subdir=git-w32fahremote
repository=/home/xraytux/projects/conversion/w32fahremote.git
branch=master

[monotone:w32fahremote]
module=fahremote.client.win32
subdir=mtn-w32fahremote
}}}

 * git version 1.5.2.2.1451.gb0e5e
 * tailor version 0.9.28
 * monotone version 0.35",smartcat99s
144,tla to hg trouble: files are missing on the target,tla,0.9,VersionOne,defect,lele,new,2007-12-09T20:06:19+01:00,2008-06-02T20:18:27+02:00,"From Kevin on the ML:

Hi, I have a small tla archive which I want to convert to mercurial.

The branch I'm interested in has about 8 patches. The problem is that about 
3 of those patches add new files, but they don't get added in the hg tree. 
after tailor runs, the files have been copied into the hg tree, but they 
haven't been added, so hg reports them as untracked files.

I've posted a small tarball containing the tla archive (just the one 
branch, with 8 patches) and my tailor config file at 
http://astrophoenix.com/tailor_tla_to_hg_bug.tar.gz

when you extract it, you'll get a directory called 'bug' which has in it 
the tla archive, and the tailor config file. the tailor config file 
uses /tmp/bug as its directory, so it's easiest if you extract it in /tmp

plus you'll have to register the archive in tla:
{{{
tla register-archive kevin@desertsol.com--progsutils  /tmp/bug/progsutils
}}}

then just run tailor in the /tmp/bug/ directory like this:
{{{
tailor -D -v --configfile magicsquare.tailor
}}}

and you should end up with a magicsquare.hg directory which, when you run 
hg status on it, will look like this:
{{{
hg status
? .arch-ids/factor.id
? .arch-ids/factor_22jul2000.tar.gz.id
? .arch-ids/xpermutations.py.id
? factor
? factor_22jul2000.tar.gz
? xpermutations.py
}}}
those last 3 files should have been added a few patches back, and it would 
also be nice if .arch-ids was added to .hgignore :)

versions of software I'm using:

I'm running on ubuntu gutsy gibbon which provides me with tla-1.3.3-2.

I fetched tailor via darcs on december 8, 2007:
darcs get --partial http://darcs.arstecnica.it/tailor

I've tried three different mercurial versions: the one that ships with 
gutsy (0.9.4), and then two diffferent stable snapshots: one from about a 
month ago ( 0b3f910dfd17) and one from december 8, 2007 (924fd86f0579). 
same behavior with all three versions of mercurial.

am I doing something wrong in my tailor config file, or is this a bug?

after this, I have a bunch of other tla archives to convert too, this was 
the first one. :(
",lele
146,git->svn conversion fails due to incorrectly adding files to SVN repos,git,0.9,VersionOne,defect,lele,new,2008-01-14T00:53:05+01:00,2008-06-02T20:36:50+02:00,"Using tailor latest darcs and tailor 0.9.30:

To reproduce:
{{{
$ mkdir -p ~/src/tailor
}}}
Put the swfdec-gnome.tailor in ~/src/tailor (I'll attach it later)
{{{
$ git clone git://anongit.freedesktop.org/git/swfdec/swfdec-gnome git/swfdec-gnome
$ tailor -c swfdec-gnome.tailor
}}}

After a while it crashes with:
{{{
Error stream:
svn: 'src/swfdec-thumbnailer.schemas.in' is not under version control
00:47:59 [E] Failure replaying: Revision: e69e0dd1319e1003a30ef936fc6c6fdefcb8c6b7
Date: 2007-10-16 14:16:07+03:00
Author: Pekka Lampila <pekka.lampila@iki.fi>
Entries: Makefile.am(UPD), configure.ac(UPD), m4/as-compiler-flag.m4(DEL), po/POTFILES.in(UPD), thumbnailer/Makefile.am(REN from src/Makefile.am), thumbnailer/swfdec-thumbnailer.c(REN from src/swfdec-thumbnailer.c), thumbnailer/swfdec-thumbnailer.schemas.in(REN from src/swfdec-thumbnailer.schemas.in)
Log: Rename src to thumbnailer
Traceback (most recent call last):
  File ""/home/olav/tmp/tailor/vcpx/target.py"", line 117, in replayChangeset
    self._replayChangeset(changeset)
  File ""/home/olav/tmp/tailor/vcpx/target.py"", line 320, in _replayChangeset
    action(group)
  File ""/home/olav/tmp/tailor/vcpx/target.py"", line 489, in _renameEntries
    self._renamePathname(e.old_name, e.name)
  File ""/home/olav/tmp/tailor/vcpx/repository/svn.py"", line 780, in _renamePathname
    err.read()))
ChangesetApplicationFailure: /home/olav/src/tailor/output $ svn mv --quiet --force src/swfdec-thumbnailer.schemas.in thumbnailer/swfdec-thumbnailer.schemas.in 2>&1 returned status 1 saying
svn: 'src/swfdec-thumbnailer.schemas.in' is not under version control

00:47:59 [C] Couldn't replay changeset
00:47:59 [C] Upstream change application failed
Failure applying upstream changes: /home/olav/src/tailor/output $ svn mv --quiet --force src/swfdec-thumbnailer.schemas.in thumbnailer/swfdec-thumbnailer.schemas.in 2>&1 returned status 1 saying
svn: 'src/swfdec-thumbnailer.schemas.in' is not under version control
}}}

This is caused by incorrectly adding files to SVN in changeset 9:
{{{
22:11:18 [I] Changeset #9
22:11:18 [I] Changeset ""09a4609f3619e4516cd9a2f5b924d80cdb457995""
22:11:18 [I] Log message: Forgot to add some files
22:11:18 [I] /home/olav/src/tailor/output $ git merge -n --no-commit fastforward HEAD 09a4609f3619e4516cd9a2f5b924d80cdb457995
22:11:18 [I] [Ok]
Output stream:
Updating 2d9256b..09a4609
Fast forward
22:11:18 [I] /home/olav/src/tailor/output $ svn add --quiet --no-auto-props --non-recursive po/LINGUAS po/POTFILES.in src/swfdec-thumbnailer.schemas.in
svn: 'po' is not a working copy
svn: Can't open file 'po/.svn/entries': No such file or directory
22:11:18 [W] [Status 1]
22:11:18 [I] /home/olav/src/tailor/output $ svn commit --file /home/olav/tmp/tailorf5RAk4svn . 2>&1
22:11:18 [I] [Ok]
22:11:18 [W] svn did not find anything to commit
}}}

Not sure if this is due to Git or SVN, so leaving default component.",bkor
150,cvs (via cvsps) fails to parse INITIAL as revision,cvsps,0.9,VersionOne,defect,lele,new,2008-05-09T21:10:55+02:00,2008-06-02T20:39:12+02:00,"{{{
File ""/opt/local/lib/python2.4/site-packages/vcpx/repository/cvsps.py"",
line 257, in _getUpstreamChangesets
   for cs in changesets_from_cvsps(log, sincerev):
 File ""/opt/local/lib/python2.4/site-packages/vcpx/repository/cvsps.py"",
line 191, in changesets_from_cvsps
   if compare_cvs_revs(e.old_revision, fromrev)>0:
 File ""/opt/local/lib/python2.4/site-packages/vcpx/repository/cvs.py"",
line 53, in compare_cvs_revs
   r1 = normalize_cvs_rev(revstr1)
 File ""/opt/local/lib/python2.4/site-packages/vcpx/repository/cvs.py"",
line 39, in normalize_cvs_rev
   r = [int(n) for n in rev.split('.')]
ValueError: invalid literal for int(): INITIAL
}}}

looks like fromrev is INITIAL and that just gets passed to the cvs rev comparison, which isn't going to work.

What *should* happen?",shadow
158,restarting the darcs source backend skips failed changesets,darcs,0.9,VersionOne,defect,lele,reopened,2008-05-29T12:09:36+02:00,2008-06-01T10:59:46+02:00,"Using the darcs source backend I've observed the following behavior:

 * the target (aegis) back-end fails
 * the state file seems (to me) to correctly register the last successfully applied change-set

however starting tailor again with the very same conditions skips the failed change-set, while I was expecting the same failure.

I think the darcs source back-end should obliterate a failed change-set before quitting.",wfranzini
161,git target fails on rename,git,0.9,VersionOne,defect,lele,new,2008-06-24T09:14:25+02:00,2008-07-17T23:34:48+02:00,"The git target is throwing an exception when converting a small project from bzr.  I believe the problem situation is during a rename in a changeset.  The current git implementation seems to assume that the file has already been renamed, so it just runs a ""git add"", however, in disjunct operation, the file has not been renamed yet and so ""git mv"" is needed.

As an example, you can try to run tailor on my attached Strangle-bzr2git.py config file.  (Although it goes much faster if you bzr branch my code first and then reconfigure it to use the local copy.)  Notice that ",jhs
162,Git target renaming empty directories in disjunct operation [PATCH],git,0.9,VersionOne,defect,lele,new,2008-06-27T13:14:46+02:00,2008-07-17T23:35:46+02:00,"The git target fails to rename empty directories during disjunct operation because it does not notice that the actual directory is called something-TAILOR-HACKED-TEMP-NAME.

The attached patch corrects the bug.  It is based on my patch from #161; however the first hunk should apply to the current darcs tree.",jhs
163,Failed Git target nested renames [PATCH],git,0.9,VersionOne,defect,lele,new,2008-06-27T13:47:35+02:00,2008-07-17T23:36:47+02:00,"The Git target (and possibly the SynchronizableTargetWorkingDir class do not handle renaming correctly when a single commit both renames a directory, and also renames a file within that directory.  For example:

{{{
$ mkdir bzrproj
$ cd bzrproj
$ bzr init
$ mkdir Original-Dir
$ touch Original-Dir/Original-File
$ bzr add
$ bzr ci -m 'Original layout'
$ bzr mv Original-Dir New-Dir
$ bzr mv New-Dir/Original-File New-Dir/New-File
$ bzr ci -m 'New layout'
$ cd ..
$ cat > tailor.conf <<EOF
[project]
source = bzr:proj
target = git:proj
start-revision = INITIAL
state-file = tailor.state

[bzr:proj]
repository = bzrproj
subdir = bzr-source

[git:proj]
subdir = git-target
EOF

$ tailor --configfile tailor.conf
18:29:58 [C] Couldn't replay changeset:
Revision: jhs@proven-corporation.com-20080627111847-zib8z61z29w3m3ek
Date: 2008-06-27 18:18:47.900000+07:00
Author: Jason Smith <jhs@proven-corporation.com>
Entries: New-Dir[DIR](REN from Original-Dir), New-Dir/New-File(REN from New-Dir/Original-File)
Log: New layout
18:29:58 [C] Upstream change application failed: /tmp/j/git-target $ git mv New-Dir/Original-File New-Dir/New-File failed
18:29:58 [C] Something unexpected!
Traceback (most recent call last):
  File ""build/bdist.linux-i686/egg/vcpx/tailor.py"", line 156, in __call__
    self.update()
  File ""build/bdist.linux-i686/egg/vcpx/tailor.py"", line 120, in update
    applyable=self._applyable, applied=self._applied)
  File ""build/bdist.linux-i686/egg/vcpx/dualwd.py"", line 102, in applyPendingChangesets
    applied=applied)
  File ""build/bdist.linux-i686/egg/vcpx/source.py"", line 136, in applyPendingChangesets
    replay(c)
  File ""build/bdist.linux-i686/egg/vcpx/dualwd.py"", line 113, in replayChangeset
    self.target.replayChangeset(changeset)
  File ""build/bdist.linux-i686/egg/vcpx/target.py"", line 134, in replayChangeset
    self._replayChangeset(changeset)
  File ""build/bdist.linux-i686/egg/vcpx/target.py"", line 336, in _replayChangeset
    action(group)
  File ""build/bdist.linux-i686/egg/vcpx/target.py"", line 502, in _renameEntries
    self._renamePathname(e.old_name, e.name)
  File ""build/bdist.linux-i686/egg/vcpx/repository/git/target.py"", line 279, in _renamePathname
    self.repository.runCommand(['mv', oldname, newname])
  File ""build/bdist.linux-i686/egg/vcpx/repository/git/__init__.py"", line 77, in runCommand
Exception: /tmp/j/git-target $ git mv New-Dir/Original-File New-Dir/New-File failed
}}}

I have attached a couple of patches (both require my patches from #162 and #161) which fixes the problem for me.",jhs
164,Svn REPLACED entries needs more work,svn,0.9,VersionOne,defect,lele,new,2008-07-17T23:44:48+02:00,2008-07-17T23:44:48+02:00,"See [1649], and the following email from Andrea:

  tailor stopped working for me. First I had to rollback mercurial to
  1.0.1 that is the last stable release. That fixed some of the problems but it still doesn't work anymore.

{{{
hg@cpushare ~ $ LANG=en_US.UTF-8 tailor --config TwistedSVN/TwistedSVN.tailor
No username found, using 'hg@cpushare.cpushare.com' instead
twisted/internet/iocpreactor/__init__.py already tracked!
twisted/internet/iocpreactor/abstract.py already tracked!
twisted/internet/iocpreactor/tcp.py already tracked!
twisted/internet/iocpreactor/udp.py already tracked!
15:04:02 [C] Couldn't replay changeset:
Revision: 22957
Date: 2008-03-18 17:35:58.086515+00:00
Author: pahan
Entries: twisted/internet/base.py(UPD),
twisted/internet/iocpreactor/__init__.py(ADD),
twisted/internet/iocpreactor/abstract.py(ADD),
twisted/internet/iocpreactor/build.bat(ADD),
twisted/internet/iocpreactor/const.py(ADD),
twisted/internet/iocpreactor/interfaces.py(ADD),
twisted/internet/iocpreactor/iocpsupport[DIR](ADD),
twisted/internet/iocpreactor/iocpsupport/acceptex.pxi(ADD),
twisted/internet/iocpreactor/iocpsupport/connectex.pxi(ADD),
twisted/internet/iocpreactor/iocpsupport/iocpsupport.c(ADD),
twisted/internet/iocpreactor/iocpsupport/iocpsupport.pyx(ADD),
twisted/internet/iocpreactor/iocpsupport/winsock_pointers.c(ADD),
twisted/internet/iocpreactor/iocpsupport/winsock_pointers.h(ADD),
twisted/internet/iocpreactor/iocpsupport/wsarecv.pxi(ADD),
twisted/internet/iocpreactor/iocpsupport/wsasend.pxi(ADD),
twisted/internet/iocpreactor/notes.txt(ADD),
twisted/internet/iocpreactor/reactor.py(ADD),
twisted/internet/iocpreactor/setup.py(ADD),
twisted/internet/iocpreactor/tcp.py(ADD),
twisted/internet/iocpreactor/udp.py(ADD),
twisted/internet/posixbase.py(UPD),
twisted/internet/test/test_iocp.py(ADD),
twisted/test/test_amp.py(UPD), twisted/test/test_ftp.py(UPD),
twisted/test/test_tcp.py(UPD),
twisted/test/test_tcp_internals.py(UPD),
twisted/topfiles/setup.py(UPD), twisted/internet/iocpreactor[DIR](ADD)
Log: Merge iocpreactor-1760-6: new iocpreactor implementation

This is new and improved iocpreactor that passes all tests.

Author: PenguinOfDoom
Reviewer: therve
Fixes #1760

15:04:02 [C] Upstream change application failed: Changes left in
working dir after commit: ['twisted/internet/iocpreactor/_iocp.c',
'twisted/internet/iocpreactor/client.py',
'twisted/internet/iocpreactor/iocpdebug.py',
'twisted/internet/iocpreactor/ops.py',
'twisted/internet/iocpreactor/proactor.py',
'twisted/internet/iocpreactor/process.py',
'twisted/internet/iocpreactor/process_waiter.py',
'twisted/internet/iocpreactor/server.py',
'twisted/internet/iocpreactor/util.py']
Most probably a tailor bug, not everything has been committed.:
Changes left in working dir after commit:
['twisted/internet/iocpreactor/_iocp.c',
'twisted/internet/iocpreactor/client.py',
'twisted/internet/iocpreactor/iocpdebug.py',
'twisted/internet/iocpreactor/ops.py',
'twisted/internet/iocpreactor/proactor.py',
'twisted/internet/iocpreactor/process.py',
'twisted/internet/iocpreactor/process_waiter.py',
'twisted/internet/iocpreactor/server.py',
'twisted/internet/iocpreactor/util.py']
}}}

  To reproduce just use this (change the root-directory as you wish of course).

{{{
[DEFAULT]
#verbose = True

[project]
target = hg:target
#start-revision = INITIAL
#start-revision = 17493
start-revision = 22868
root-directory = /home/hg/TwistedSVN
state-file = tailor.state
source = svn:source
subdir = Twisted

[hg:target]

[svn:source]
# false for old svn version
#use-limit = False
#ignore-externals = False
module = /trunk
repository = svn://svn.twistedmatrix.com/svn/Twisted
}}}
",lele
165,Darcs to Bzr cannot handle files moved and deleted in the same commit,bzr,0.9,VersionOne,defect,lele,new,2008-07-25T15:25:10+02:00,2008-07-25T15:32:33+02:00,"The attached testcase contains:

 * A source Darcs repository with 2 patches: an initial patch, creating the file dir1/dir2/file, and a reorganisation patch which first renames dir1 to newdir1 and then deletes newdir1/dir2/file

 * A script ""convert"" which tries to convert this to Bzr format

 * A script ""reset"" which will clean up after that attempt

 * A Bzr repository which is what I >want< Tailor to output, but which it cannot because the conversion fails with this error:

{{{
14:01:38 [I] Bootstrap completed
14:01:38 [I] Updating ""project"" in ""/Users/mbolingbroke/JunkTailor""
14:01:38 [I] /Users/mbolingbroke/JunkTailor/cvt-darcs $ darcs pull --dry-run --xml-output /Users/mbolingbroke/JunkTailor/darcs 2>&1
14:01:38 [D] Executing  darcs pull --dry-run --xml-output /Users/mbolingbroke/JunkTailor/darcs ('/Users/mbolingbroke/JunkTailor/cvt-darcs')
14:01:38 [I] [Ok]
Output stream:
<patches>
<patch author='Max Bolingbroke &lt;batterseapower@xxxxxx.com&gt;' date='20080725124940' local_date='Fri Jul 25 12:49:40 UTC 2008' inverted='False' hash='20080725124940-9b787-4eb4e19d5f62ddc9842b17a62fcf159d0d7146fe.gz'>
	<name>Reorganisation</name>
</patch>
</patches>
14:01:38 [I] Cached information about 1 pending changesets
14:01:38 [I] Applying pending upstream changesets
14:01:38 [I] Changeset #1
14:01:38 [I] Upstream revision ""Reorganisation"" by Max Bolingbroke <batterseapower@xxxxxx.com>, 2008-07-25 12:49:40+00:00
14:01:38 [D] Going to apply changeset:
Revision: Reorganisation
Date: 2008-07-25 12:49:40+00:00
Author: Max Bolingbroke <batterseapower@xxxxxx.com>
Entries: 
Log: 
14:01:38 [I] /Users/mbolingbroke/JunkTailor/cvt-darcs $ darcs pull --all --quiet --match ""hash 20080725124940-9b787-4eb4e19d5f62ddc9842b17a62fcf159d0d7146fe.gz"" 2>&1
14:01:38 [D] Executing  darcs pull --all --quiet --match ""hash 20080725124940-9b787-4eb4e19d5f62ddc9842b17a62fcf159d0d7146fe.gz"" ('/Users/mbolingbroke/JunkTailor/cvt-darcs')
14:01:38 [I] [Ok]
14:01:38 [I] /Users/mbolingbroke/JunkTailor/cvt-darcs $ darcs changes --match ""hash 20080725124940-9b787-4eb4e19d5f62ddc9842b17a62fcf159d0d7146fe.gz"" --xml-output --summ
14:01:38 [D] Executing  darcs changes --match ""hash 20080725124940-9b787-4eb4e19d5f62ddc9842b17a62fcf159d0d7146fe.gz"" --xml-output --summ ('/Users/mbolingbroke/JunkTailor/cvt-darcs')
14:01:38 [I] [Ok]
Output stream:
<changelog>
<patch author='Max Bolingbroke &lt;batterseapower@xxxxxx.com&gt;' date='20080725124940' local_date='Fri Jul 25 13:49:40 BST 2008' inverted='False' hash='20080725124940-9b787-4eb4e19d5f62ddc9842b17a62fcf159d0d7146fe.gz'>
	<name>Reorganisation</name>
    <summary>
    <move from=""dir1"" to=""dir1new""/>
    <remove_file>
    dir1new/dir2/file
    </remove_file>
    </summary>
</patch>
</changelog>
14:01:38 [I] $ rsync --archive --ignore-times --exclude _darcs --exclude .bzr /Users/mbolingbroke/JunkTailor/cvt-darcs/ /Users/mbolingbroke/JunkTailor/cvt-bzr
14:01:38 [D] Executing  rsync --archive --ignore-times --exclude _darcs --exclude .bzr /Users/mbolingbroke/JunkTailor/cvt-darcs/ /Users/mbolingbroke/JunkTailor/cvt-bzr ('/Users/mbolingbroke/JunkTailor')
14:01:38 [I] [Ok]
14:01:38 [I] Renaming u'dir1' to u'dir1new'...
14:01:38 [I] Removing dir1new/dir2/file...
14:01:38 [I] removed dir1new/dir2/file
14:01:38 [I] Committing Reorganisation...
14:01:38 [C] Couldn't replay changeset:
Revision: Reorganisation
Date: 2008-07-25 12:49:40+00:00
Author: Max Bolingbroke <batterseapower@xxxxxx.com>
Entries: dir1new(REN from dir1)
	 dir1new/dir2/file(DEL)
Log: 
14:01:38 [C] Upstream change application failed: Path(s) are not versioned: dir1new/dir2/file
14:01:38 [C] Something unexpected!
Traceback (most recent call last):
  File ""/Users/mbolingbroke/Programming/Checkouts/tailor/vcpx/tailor.py"", line 156, in __call__
    self.update()
  File ""/Users/mbolingbroke/Programming/Checkouts/tailor/vcpx/tailor.py"", line 120, in update
    applyable=self._applyable, applied=self._applied)
  File ""/Users/mbolingbroke/Programming/Checkouts/tailor/vcpx/dualwd.py"", line 102, in applyPendingChangesets
    applied=applied)
  File ""/Users/mbolingbroke/Programming/Checkouts/tailor/vcpx/source.py"", line 136, in applyPendingChangesets
    replay(c)
  File ""/Users/mbolingbroke/Programming/Checkouts/tailor/vcpx/dualwd.py"", line 113, in replayChangeset
    self.target.replayChangeset(changeset)
  File ""/Users/mbolingbroke/Programming/Checkouts/tailor/vcpx/target.py"", line 143, in replayChangeset
    entries, tags = changeset.tags)
  File ""/Users/mbolingbroke/Programming/Checkouts/tailor/vcpx/repository/bzr.py"", line 396, in _commit
    timestamp=timestamp, timezone=timezone)
  File ""<string>"", line 4, in commit_write_locked
  File ""/opt/local/lib/python2.5/site-packages/bzrlib/workingtree_4.py"", line 240, in commit
    result = WorkingTree3.commit(self, message, revprops, *args, **kwargs)
  File ""<string>"", line 4, in commit_write_locked
  File ""/opt/local/lib/python2.5/site-packages/bzrlib/mutabletree.py"", line 197, in commit
    revprops=revprops, *args, **kwargs)
  File ""/opt/local/lib/python2.5/site-packages/bzrlib/commit.py"", line 315, in commit
    specific_files, [self.basis_tree, self.work_tree])
  File ""/opt/local/lib/python2.5/site-packages/bzrlib/tree.py"", line 623, in find_ids_across_trees
    require_versioned)
  File ""/opt/local/lib/python2.5/site-packages/bzrlib/tree.py"", line 650, in _find_ids_across_trees
    raise errors.PathsNotVersionedError(not_versioned)
PathsNotVersionedError: Path(s) are not versioned: dir1new/dir2/file
}}}",batterseapower
170,BzrRenameFailedError: Could not rename...,tailor,0.9,VersionOne,defect,lele,new,2008-11-13T11:56:12+01:00,2009-04-13T15:21:35+02:00,"Hi!

Attempt to convert gtk2hs repo from darcs to bzr failed with:

{{{

[...]
20:04:14 [I] Committed revision 1188.
20:04:14 [I] -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
20:04:14 [I] Changeset #1188
20:04:14 [I] Changeset ""Make the new tree and list stores default in the new ModelView dir""
20:04:14 [I] /home/gour/repos/bzr/gtk2hs $ darcs pull --all --quiet --match ""hash 20061208103646-b4c10-3140e302311f95930ee5db3b98de35e587711f21.gz"" 2>&1
20:04:18 [I] [Ok]
20:04:18 [I] /home/gour/repos/bzr/gtk2hs $ darcs changes --match ""hash 20061208103646-b4c10-3140e302311f95930ee5db3b98de35e587711f21.gz"" --xml-output --summ
20:04:18 [I] [Ok]
20:04:18 [I] Renaming u'gtk/Graphics/UI/Gtk/ModelView/ListStoreNew.hs.pp' to u'gtk/Graphics/UI/Gtk/ModelView/ListStore.hs.pp'...
20:04:18 [E] Failure replaying: Revision: Make the new tree and list stores default in the new ModelView dir
Date: 2006-12-08 10:36:46+00:00
Author: Duncan Coutts <duncan@coutts.uklinux.net>
Entries: gtk/Graphics/UI/Gtk/ModelView/ListStore.hs.pp(REN from gtk/Graphics/UI/Gtk/ModelView/ListStoreNew.hs.pp), gtk/Graphics/UI/Gtk/ModelView/TreeStore.hs(REN from gtk/Graphics/UI/Gtk/ModelView/TreeStoreNew.hs), gtk/Graphics/UI/Gtk/ModelView/ListStore.chs.pp(DEL), gtk/Graphics/UI/Gtk/ModelView/TreeStore.chs.pp(DEL)
Log: 
Traceback (most recent call last):
  File ""/usr/lib/python2.6/site-packages/vcpx/target.py"", line 134, in replayChangeset
    self._replayChangeset(changeset)
  File ""/usr/lib/python2.6/site-packages/vcpx/target.py"", line 330, in _replayChangeset
    action(group)
  File ""/usr/lib/python2.6/site-packages/vcpx/target.py"", line 502, in _renameEntries
    self._renamePathname(e.old_name, e.name)
  File ""/usr/lib/python2.6/site-packages/vcpx/repository/bzr.py"", line 407, in _renamePathname
    self._working_tree.rename_one(oldname, newname)
  File ""/usr/lib/python2.6/site-packages/bzrlib/mutabletree.py"", line 52, in tree_write_locked
    return unbound(self, *args, **kwargs)
  File ""/usr/lib/python2.6/site-packages/bzrlib/workingtree_4.py"", line 1264, in rename_one
    WorkingTree.rename_one(self, from_rel, to_rel, after)
  File ""/usr/lib/python2.6/site-packages/bzrlib/mutabletree.py"", line 52, in tree_write_locked
    return unbound(self, *args, **kwargs)
  File ""/usr/lib/python2.6/site-packages/bzrlib/workingtree.py"", line 1431, in rename_one
    errors.NotVersionedError(path=str(from_rel)))
BzrRenameFailedError: Could not rename ListStoreNew.hs.pp => ListStore.hs.pp: gtk/Graphics/UI/Gtk/ModelView/ListStoreNew.hs.pp is not versioned.
20:04:19 [C] Couldn't replay changeset: Could not rename ListStoreNew.hs.pp => ListStore.hs.pp: gtk/Graphics/UI/Gtk/ModelView/ListStoreNew.hs.pp is not versioned.
20:04:19 [I] 628 pending changesets in state file
20:04:19 [C] Upstream change application failed
20:04:19 [C] Something unexpected!
Traceback (most recent call last):
  File ""/usr/lib/python2.6/site-packages/vcpx/tailor.py"", line 154, in __call__
    self.update()
  File ""/usr/lib/python2.6/site-packages/vcpx/tailor.py"", line 118, in update
    applyable=self._applyable, applied=self._applied)
  File ""/usr/lib/python2.6/site-packages/vcpx/dualwd.py"", line 102, in applyPendingChangesets
    applied=applied)
  File ""/usr/lib/python2.6/site-packages/vcpx/source.py"", line 137, in applyPendingChangesets
    replay(c)
  File ""/usr/lib/python2.6/site-packages/vcpx/dualwd.py"", line 113, in replayChangeset
    self.target.replayChangeset(changeset)
  File ""/usr/lib/python2.6/site-packages/vcpx/target.py"", line 134, in replayChangeset
    self._replayChangeset(changeset)
  File ""/usr/lib/python2.6/site-packages/vcpx/target.py"", line 330, in _replayChangeset
    action(group)
  File ""/usr/lib/python2.6/site-packages/vcpx/target.py"", line 502, in _renameEntries
    self._renamePathname(e.old_name, e.name)
  File ""/usr/lib/python2.6/site-packages/vcpx/repository/bzr.py"", line 407, in _renamePathname
    self._working_tree.rename_one(oldname, newname)
  File ""/usr/lib/python2.6/site-packages/bzrlib/mutabletree.py"", line 52, in tree_write_locked
    return unbound(self, *args, **kwargs)
  File ""/usr/lib/python2.6/site-packages/bzrlib/workingtree_4.py"", line 1264, in rename_one
    WorkingTree.rename_one(self, from_rel, to_rel, after)
  File ""/usr/lib/python2.6/site-packages/bzrlib/mutabletree.py"", line 52, in tree_write_locked
    return unbound(self, *args, **kwargs)
  File ""/usr/lib/python2.6/site-packages/bzrlib/workingtree.py"", line 1431, in rename_one
    errors.NotVersionedError(path=str(from_rel)))
BzrRenameFailedError: Could not rename ListStoreNew.hs.pp => ListStore.hs.pp: gtk/Graphics/UI/Gtk/ModelView/ListStoreNew.hs.pp is not versioned.
tailor -c gtk2hs.tailor  4539,61s user 529,17s system 74% cpu 1:52:41,47 total

}}}


Here is the config file:

{{{
[DEFAULT]
verbose = True

[project]
patch-name-format = ""%(revision)s""
target = bzr:target
start-revision = INITIAL
root-directory = /home/gour/repos/bzr
state-file = tailor.state
source = darcs:source
subdir = gtk2hs

[bzr:target]
repository = gtk2hs

[darcs:source]
repository = http://code.haskell.org/gtk2hs
}}}


Sincerely,[[BR]]Gour
",gour
171,converting darcs' darcs to git results in a corrupted repo,tailor,0.9,VersionOne,defect,lele,new,2008-11-29T22:10:07+01:00,2008-12-26T02:33:20+01:00,"Hi,

Here is the config I used:

$ cat config
{{{
[DEFAULT]
encoding-errors-policy = replace

[sandbox]
source = darcs:sandbox
target = git:sandbox

[darcs:sandbox]
subdir = darcs
repository = /path/to/sandbox

[git:sandbox]
subdir = git
repository = /path/to/sandbox.git
}}}

Where sandbox is http://code.haskell.org/darcs/big-zoo/darcs-repo-2008-10-31.tar.bz2

I started the conversion in non-verbose mode, it converted 6422 of 6548 changesets and exited without any error. As I guessed, the result does not match the original repo.

Given that the repo is public, I hope you can reproduce the error.

Sadly I'm not sure where the error occures, the conversion took 373 minutes on my machine.

$ darcs --version
2.1.2 (+ 266 patches)

$ git --version
git version 1.6.0.1

I am using darcs from the darcs repo (and not the latest release) as I had other problems and the suggested fix on the mailing list was to use the version from the repo.

If I missed any important info, please let me know.

Thanks.",vmiklos
173,darcs->any processing fails on non-ascii changelogs,darcs,0.9,VersionOne,defect,lele,new,2008-12-17T20:08:25+01:00,2008-12-17T20:18:38+01:00,"I converted some SVN repository to darcs using tailor. Source repository has Russian changelogs in UTF-8. They were migrated to darcs just fine. 

Then, I tried to sync darcs repo to SVN and failed: tailor terminates with runtime error from SAXParser while trying to parse Russian changelogs from ""darcs changes --xml-output"". Exact error is: ""SAXParseException: not well-formed (invalid token)"".

I saved the output from ""darcs changes --xml-output"" to file and tried to run various XML validators on it (xmllint, xmlstarlet, online XML validator from w3c). They all agreed that XML is well-formed.

I wrote the test script for tailor test suite that recreates the problem (see attachment). Hope this helps.",adept
174,darcs->any processing fails if darcs repo has MOTD,darcs,0.9,VersionOne,defect,lele,new,2008-12-17T20:12:50+01:00,2008-12-17T23:48:15+01:00,"If darcs repository has MOTD (message-of-the-day, residing in _darcs/prefs/motd) configured, tailor will fail to pull changes from such repo. It seems like MOTD text confuses SAX parser, which expects the output from ""darcs pull --dry-run --xml-output"" to contain only XML elements and nothing else.

This is very ironic, since during any->darcs processing tailor will create MOTD file in the target darcs repo (putting the address of the source repo there).

I create a test suite scripts to recreate this bug, attaching it.",adept
178,git backend problem with mv ??,tailor,0.9,VersionOne,defect,lele,new,2009-03-16T18:52:56+01:00,2009-03-17T10:25:49+01:00,"Since lelit fixed my config file from #176 I tried again to convert Tahoe's history from darcs to git.  This time it stops with:

{{{
2009-03-16 11:29:33     INFO: /home/zooko/playground/allmydata/tahoe/tailored/tahoe $ git update-ref HEAD 905525529e1da31ab8eab83bee4ba589b61bd2ab dabf91210eee51fb489b58d9e2e5c51ae71db1a9
2009-03-16 11:29:33     INFO: [Ok]
2009-03-16 11:29:33     INFO: Changeset #86
2009-03-16 11:29:33     INFO: /home/zooko/playground/allmydata/tahoe/tailored/tahoe $ darcs pull --all --quiet --match ""hash 20061204080325-92b7f-9283831eccadf8dfb20a32c46dbb7b18ad73bda9.gz"" 2>&1
2009-03-16 11:29:42     INFO: [Ok]
2009-03-16 11:29:42     INFO: /home/zooko/playground/allmydata/tahoe/tailored/tahoe $ darcs changes --match ""hash 20061204080325-92b7f-9283831eccadf8dfb20a32c46dbb7b18ad73bda9.gz"" --xml-output --summ
2009-03-16 11:29:43     INFO: [Ok]
2009-03-16 11:29:43     INFO: /home/zooko/playground/allmydata/tahoe/tailored/tahoe $ git mv amdlib/util/assertutil.py allmydata/util/assertutil.py
2009-03-16 11:29:43  WARNING: [Status 128]
2009-03-16 11:29:43    ERROR: Failure replaying: Revision: mv amdlib/util/* to allmydata/util/
Date: 2006-12-04 08:03:25+00:00
Author: zooko@zooko.com
Entries: allmydata/util/assertutil.py(REN from amdlib/util/assertutil.py)
         allmydata/util/humanreadable.py(REN from amdlib/util/humanreadable.py)
         allmydata/bucketstore.py(UPD)
         amdlib/__init__.py(DEL)
         amdlib/util/__init__.py(DEL)
         amdlib/util[DIR](DEL)
         amdlib[DIR](DEL)
Log:
Traceback (most recent call last):
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/target.py"", line 134, in replayChangeset
    self._replayChangeset(changeset)
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/target.py"", line 330, in _replayChangeset
    action(group)
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/target.py"", line 502, in _renameEntries
    self._renamePathname(e.old_name, e.name)
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/repository/git/target.py"", line 263, in _renamePathname
    self.repository.runCommand(['mv', oldname, newname])
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/repository/git/__init__.py"", line 77, in runCommand
    raise exception(str(c) + ' failed')
Exception: /home/zooko/playground/allmydata/tahoe/tailored/tahoe $ git mv amdlib/util/assertutil.py allmydata/util/assertutil.py failed
2009-03-16 11:29:43 CRITICAL: Couldn't replay changeset:
Revision: mv amdlib/util/* to allmydata/util/
Date: 2006-12-04 08:03:25+00:00
Author: zooko@zooko.com
Entries: allmydata/util/assertutil.py(REN from amdlib/util/assertutil.py)
         allmydata/util/humanreadable.py(REN from amdlib/util/humanreadable.py)
         allmydata/bucketstore.py(UPD)
         amdlib/__init__.py(DEL)
         amdlib/util/__init__.py(DEL)
         amdlib/util[DIR](DEL)
         amdlib[DIR](DEL)
Log:
2009-03-16 11:29:43     INFO: 3713 pending changesets in state file
2009-03-16 11:29:43 CRITICAL: Upstream change application failed: /home/zooko/playground/allmydata/tahoe/tailored/tahoe $ git mv amdlib/util/assertutil.py allmydata/util/assertutil.py failed
2009-03-16 11:29:43 CRITICAL: Something unexpected!
Traceback (most recent call last):
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/tailor.py"", line 156, in __call__
    self.update()
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/tailor.py"", line 120, in update
    applyable=self._applyable, applied=self._applied)
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/dualwd.py"", line 102, in applyPendingChangesets
    applied=applied)
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/source.py"", line 136, in applyPendingChangesets
    replay(c)
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/dualwd.py"", line 113, in replayChangeset
    self.target.replayChangeset(changeset)
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/target.py"", line 134, in replayChangeset
    self._replayChangeset(changeset)
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/target.py"", line 330, in _replayChangeset
    action(group)
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/target.py"", line 502, in _renameEntries
    self._renamePathname(e.old_name, e.name)
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/repository/git/target.py"", line 263, in _renamePathname
    self.repository.runCommand(['mv', oldname, newname])
  File ""/usr/local/lib/python2.6/dist-packages/tailor-0.9.35-py2.6.egg/vcpx/repository/git/__init__.py"", line 77, in runCommand
    raise exception(str(c) + ' failed')
Exception: /home/zooko/playground/allmydata/tahoe/tailored/tahoe $ git mv amdlib/util/assertutil.py allmydata/util/assertutil.py failed
}}}

Here is my current config file:

{{{
[DEFAULT]
replace-badchars = {'\xb4': '&#180;', '\xc1': '&#193;', '\xc4': '&#196;', '\xc5': '&#197;', '\xc9': '&#201;', '\xcd': '&#205;', '\xd3': '&#211;', '\xd5': '&#336;', '\xd6': '&#214;', '\xda': '&#218;', '\xdb': '&#368;', '\xdc':'&#220;', '\xdf': '&#223;', '\xe1': '&#225;', '\xe5': '&#229;', '\xe9': '&#233;', '\xed': '&#237;', '\xf1': '&#241;', '\xf3': '&#243;', '\xf5': '&#337;', '\xf6': '&#246;', '\xfa': '&#250;', '\xfb': '&#369;', '\xfc': '&#252;','\xc2': 'A'}

[project]
target = git:target
start-revision = INITIAL
state-file = tailor.state
source = darcs:source
subdir = ./tahoe

[git:target]

[darcs:source]
repository = /home/zooko/playground/allmydata/tahoe/trunk/pristine
init-options = --hashed
}}}
",zooko
179,error converting a file-rename patch from git to darcs,git,0.9,VersionOne,defect,lele,new,2009-04-14T09:57:29+02:00,2009-04-14T09:57:29+02:00,"transferred from Fedora's bugzilla, for all details (logs, config, test repo, ...) please see https://bugzilla.redhat.com/show_bug.cgi?id=495423

I was attempting to do something very unusual (possibly completely unique). I had a darcs repository which did not have file renames recorded correctly (they were recorded as patch containing file deletes and file adds). I wanted to ""fix"" this problem by converting the repo from darcs to git, and git to darcs again, to make use of git's automatic file rename detection. It almost worked. However, tailor choked on the renamed files.
",sharkcz
180,"Git source, remote repository - Status 128 on everything",tailor,0.9,VersionOne,defect,lele,new,2009-04-25T13:24:38+02:00,2009-04-25T13:24:38+02:00,"I try to port remote git repository to monotone. I do the simplest thing possible for that and I get [Status 128] on fetch: git cannot find git://git.savannah.nongnu.org/stumpwm.git/objects as a local file. 

Reason: {{{ GIT_DIR=git://git.savannah.nongnu.org/stumpwm.git }}} environment variable is set in tailor/vcpx/repository/git/__init__.py, line 58. [[BR]]
{{{             self.env['GIT_DIR'] = self.storagedir }}}

Proof/temporary workaround: I made a wrapper for git doing [[br]]
{{{/var/run/current-system/sw/bin/env -i /var/run/current-system/sw/bin/git ""$@"" }}} [[br]] (/var/run/current-system/sw/bin contains symlinks to all relevant executables), and tailor works OK. 

Possible ways to fix: [[BR]]
1) Add an option not to set environment variables [[br]]
2) Not to set GIT_DIR if self.storagedir[:6]==""git://"" 
[[br]]Like this (tested, it works): [[br]]
{{{
diff -rN old-tailor/vcpx/repository/git/__init__.py new-tailor/vcpx/repository/git/__init__.py
58c58,59
<             self.env['GIT_DIR'] = self.storagedir
---
> 	      if (self.storagedir [:6] != ""git://"") and (self.storagedir [:7] != ""http://""):
> 	              self.env['GIT_DIR'] = self.storagedir
}}}

",MichaelRaskin
182,duplicate tag created when synchronising with upstream CVS repository,tailor,0.9,VersionOne,defect,lele,new,2009-05-04T08:51:20+02:00,2009-05-04T08:51:20+02:00,"transferred from Fedora's bugzilla, for all details (logs, config, test repo, ...) please see https://bugzilla.redhat.com/show_bug.cgi?id=498786

I used tailor to create a darcs repository based on a CVS repository. I
committed some changes to my darcs repo, and then used tailor again to pull in
any upstream changes that had been committed since the previous tailor run (as
it turned out, there were none). Tailor then re-tagged the repository, even
though it had already tagged it, with the same tag, the first time.

",sharkcz
183,"DarcsTarget should dump current content before ""rmfile"" writing the pending file",darcs,0.9,VersionOne,defect,lele,new,2009-08-23T15:37:45+02:00,2009-08-23T15:37:45+02:00,See http://bugs.darcs.net/issue1486 and http://bugs.darcs.net/issue693,lele
1,Better two-way sync,tailor,1.0,VersionOne,enhancement,lele,new,2005-08-27T19:22:16+02:00,2007-07-04T02:01:01+02:00,"Nathan Gray <kolibrie@graystudios.org> suggested the following
enhancement:

  ''I would update from CVS to darcs.  Do my work in darcs.  When I am
  ready to commit back to CVS, I tell tailor to sync.  Tailor would
  first check to see if there had been any updates to CVS, and pull
  those, creating darcs patches for each changeset.  Then immediately
  after committing each darcs patch to CVS, tailor would check to see
  if there had been any updates to CVS.  There would be at least one
  (from the patch just committed), which would be pulled back.  CVS
  would now be happy, and darcs would detect no changes, and would
  also be happy.  Tailor could then continue with the next darcs patch
  to commit to CVS.''",lele@…
166,No bzr-to-git tests [PATCH],tailor,0.9,VersionOne,enhancement,lele,new,2008-07-29T10:05:47+02:00,2008-07-29T10:05:47+02:00,"There are no tests for Bzr to Git conversion in the test suite.

Attached are two patches to get this started.  Hopefully I can add more soon because I think there are still some bugs in bzr2git.",jhs
181,Non-trivial unmarked branching,tailor,0.9,VersionOne,enhancement,lele,new,2009-04-25T20:32:07+02:00,2009-04-25T20:32:07+02:00,"{{{
rm -rf hg* tailor* git* 
mkdir hg ; cd hg ; hg init
touch a ; hg add a ; hg ci -m a
touch b ; hg add b ; hg ci -m b
hg up -r 0 
touch c ; hg add c ; hg ci -m c
cd ..

cat <<EOF >tailor.conf
[DEFAULT]
debug = True
verbose = True

[tailor]
target = git:target
start-revision = INITIAL
root-directory = /home/raskin/tmp/tailor
state-file = tailor.state
source = hg:source
subdir=tailor

[hg:source]
repository = hg

[git:target]
repository = /home/raskin/tmp/tailor/git
module = main
git-command = /var/run/current-system/sw/bin/git
EOF

tailor -D -v -c tailor.conf
}}}

This produces linear git history where ""b"" is first added then deleted. With some targets (like monotone) it will even fail because of disappearing file. Obviously, that doesn't preserve repository structure. 

In the ideal world tailor would produce the same branching structure. In slightly less ideal world I would be able specify the final revision. Tailor could skip any revision not being ancestor of desired head or not being descendent of previous chosen revision..
",MichaelRaskin
57,cvs source breaks a long commit if a short one occured mid-way,cvs,0.9,VersionOne,defect,lele,new,2006-06-06T00:12:01+02:00,2006-08-15T15:01:10+02:00,"When a changeset that touches several files within the defined threshold, the files are grouped as expected in a single changeset.  However, when another changeset was committed after the 1st in the 1st changeset, and before the last one, the 1st changeset is split in 2 parts.

It is easy to reproduce by a single person by issuing 3 commits, but someone commiting a single file while another is committing a huge patchset (eg. with large binary files) will surely see the same behaviour.

The same commits are grouped by cvsps, as shown below.

log from cvs backend:

{{{
2006-06-06 00:05:12     INFO: -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
2006-06-06 00:05:12     INFO: Changeset ""2002-01-23 17:04:52 by ydirson""
2006-06-06 00:05:12     INFO: Log message: - initial version
2006-06-06 00:05:12     INFO: /export/work/yann/tailor/test/root/trunk $ cvs -d /export/work/yann/tailor/test/cvsroot -q update -d -r 1.1 TODO
2006-06-06 00:05:13     INFO: [Ok]
2006-06-06 00:05:13     INFO: /export/work/yann/tailor/test/root/trunk $ cvs -d /export/work/yann/tailor/test/cvsroot -q update -d -r 1.1 ISSUES
2006-06-06 00:05:14     INFO: [Ok]
2006-06-06 00:05:14     INFO: /export/work/yann/tailor/test/root/trunk $ cvs -d /export/work/yann/tailor/test/cvsroot -q update -d -r 1.1 README
2006-06-06 00:05:15     INFO: [Ok]
2006-06-06 00:05:15     INFO: /export/work/yann/tailor/test/root/trunk $ git add TODO ISSUES README
2006-06-06 00:05:15     INFO: [Ok]
2006-06-06 00:05:15     INFO: /export/work/yann/tailor/test/root/trunk $ git commit -a -F -
2006-06-06 00:05:15     INFO: [Ok]
2006-06-06 00:05:15     INFO: -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
2006-06-06 00:05:15     INFO: Changeset ""2002-01-23 17:06:10 by ydirson""
2006-06-06 00:05:15     INFO: Log message: - imported GPL v2
2006-06-06 00:05:15     INFO: /export/work/yann/tailor/test/root/trunk $ cvs -d /export/work/yann/tailor/test/cvsroot -q update -d -r 1.1 COPYING
2006-06-06 00:05:16     INFO: [Ok]
2006-06-06 00:05:16     INFO: /export/work/yann/tailor/test/root/trunk $ git add COPYING
2006-06-06 00:05:16     INFO: [Ok]
2006-06-06 00:05:16     INFO: /export/work/yann/tailor/test/root/trunk $ git commit -a -F -
2006-06-06 00:05:16     INFO: [Ok]
2006-06-06 00:05:16     INFO: -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
2006-06-06 00:05:16     INFO: Changeset ""2002-01-23 17:06:23 by ydirson""
2006-06-06 00:05:16     INFO: Log message: - initial version
2006-06-06 00:05:16     INFO: /export/work/yann/tailor/test/root/trunk $ cvs -d /export/work/yann/tailor/test/cvsroot -q update -d -r 1.1 Makefile
2006-06-06 00:05:17     INFO: [Ok]
2006-06-06 00:05:17     INFO: /export/work/yann/tailor/test/root/trunk $ git add Makefile
2006-06-06 00:05:17     INFO: [Ok]
2006-06-06 00:05:17     INFO: /export/work/yann/tailor/test/root/trunk $ git commit -a -F -
2006-06-06 00:05:17     INFO: [Ok]
2006-06-06 00:05:17     INFO: -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
}}}

log from csps backend:

{{{
2006-06-06 00:00:20     INFO: -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
2006-06-06 00:00:20     INFO: Changeset ""12""
2006-06-06 00:00:20     INFO: Log message: - initial version
2006-06-06 00:00:20     INFO: /export/work/yann/tailor/test/rootps/trunk $ cvs -d :pserver:anonymous@cvs.savannah.nongnu.org:/sources/dsssl-utils -q update -d -r 1.1 ISSUES
2006-06-06 00:00:21     INFO: [Ok]
2006-06-06 00:00:21     INFO: /export/work/yann/tailor/test/rootps/trunk $ cvs -d :pserver:anonymous@cvs.savannah.nongnu.org:/sources/dsssl-utils -q update -d -r 1.1 Makefile
2006-06-06 00:00:22     INFO: [Ok]
2006-06-06 00:00:22     INFO: /export/work/yann/tailor/test/rootps/trunk $ cvs -d :pserver:anonymous@cvs.savannah.nongnu.org:/sources/dsssl-utils -q update -d -r 1.1 README
2006-06-06 00:00:23     INFO: [Ok]
2006-06-06 00:00:23     INFO: /export/work/yann/tailor/test/rootps/trunk $ cvs -d :pserver:anonymous@cvs.savannah.nongnu.org:/sources/dsssl-utils -q update -d -r 1.1 TODO
2006-06-06 00:00:24     INFO: [Ok]
2006-06-06 00:00:24     INFO: /export/work/yann/tailor/test/rootps/trunk $ git add ISSUES Makefile README TODO
2006-06-06 00:00:24     INFO: [Ok]
2006-06-06 00:00:24     INFO: /export/work/yann/tailor/test/rootps/trunk $ git commit -a -F -
2006-06-06 00:00:24     INFO: [Ok]
2006-06-06 00:00:24     INFO: -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
2006-06-06 00:00:24     INFO: Changeset ""13""
2006-06-06 00:00:24     INFO: Log message: - imported GPL v2
2006-06-06 00:00:24     INFO: /export/work/yann/tailor/test/rootps/trunk $ cvs -d :pserver:anonymous@cvs.savannah.nongnu.org:/sources/dsssl-utils -q update -d -r 1.1 COPYING
2006-06-06 00:00:26     INFO: [Ok]
2006-06-06 00:00:26     INFO: /export/work/yann/tailor/test/rootps/trunk $ git add COPYING
2006-06-06 00:00:26     INFO: [Ok]
2006-06-06 00:00:26     INFO: /export/work/yann/tailor/test/rootps/trunk $ git commit -a -F -
2006-06-06 00:00:26     INFO: [Ok]
2006-06-06 00:00:26     INFO: -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
}}}
",ydirson
169,Factor out the update of the boring files to skip,tailor,0.9,VersionOne,defect,lele,new,2008-10-27T20:18:15+01:00,2008-10-27T20:18:15+01:00,"The update of the boring file (in darcs parlance) should be done in the bootstrap code, instead of in the repository creation step.

Otherwise, migrating several source projects into a single target will add just the first set of files (`project1.log`, `project1.state`...).",lele
172,Does not work with mercurial 1.1,hg,0.9,VersionOne,defect,lele,new,2008-12-11T18:00:00+01:00,2009-01-07T18:37:59+01:00,"As reported on IRC, hg 1.1 changed the way commands are exposed, again...

With current tailor you get this traceback:
{{{
19:53:30 [C] Cannot prepare working directory!                     
Traceback (most recent call last):
  File ""/var/lib/python-support/python2.5/vcpx/tailor.py"", line 71, in bootstrap
    dwd.prepareWorkingDirectory(self.source)
  File ""/var/lib/python-support/python2.5/vcpx/target.py"", line 566, in prepareWorkingDirectory
    self._prepareWorkingDirectory(source_repo)
  File ""/var/lib/python-support/python2.5/vcpx/repository/hg.py"", line 467, in _prepareWorkingDirectory
    message = 'Tailor preparing to convert repo by adding .hgignore')
  File ""/var/lib/python-support/python2.5/vcpx/repository/hg.py"", line 364, in _hgCommand
    allopts = self._defaultOpts(cmd)
  File ""/var/lib/python-support/python2.5/vcpx/repository/hg.py"", line 359, in _defaultOpts
    return dict([(f[1].replace('-', '_'), f[2]) for f in findcmd(cmd)[1][1]])
  File ""/var/lib/python-support/python2.5/vcpx/repository/hg.py"", line 348, in findcmd
    return cmdutil.findcmd(self._getUI(), cmd, commands.table)
  File ""/var/lib/python-support/python2.5/mercurial/cmdutil.py"", line 52, in findcmd
    choice = findpossible(cmd, table, strict)
  File ""/var/lib/python-support/python2.5/mercurial/cmdutil.py"", line 29, in findpossible
    for e in table.keys():
AttributeError: 'str' object has no attribute 'keys'
}}}
",lele
175,svn:author not set consistently,svn,0.9,VersionOne,defect,lele,new,2009-02-21T21:00:11+01:00,2009-02-27T09:46:09+01:00,"I've recently found tailor and had one of those wonderful moments when you find the code you were going to write has already been written! :)

Anyway, my evaluation project is one from GoogleCode, and hence Subversion, importing into a Subversion repository on my local server.

One of the things I like about tailor is that it sets the data and author of the imported commits, but when doing the import, I noticed a few strange anomalies, namely, a very small number of imported commits assigned to the user doing the import, (me).

I've repeated the import a few times, and each time it's different revisions that have the wrong author.

I've modified my hook script to log the parameters, and it clearly shows they're not coming through:
<see attached file pre-revprop-change>

...results in (sanitised):
<see attached file pre-revprop-change.log>

Debug was turned on, and here's the relevant log snippet (also sanitised):
<see attached file tailor.debug.log>

...and for completeness, here's my config (again, sanitised):
<see attached file tailor.config>",mr_jrt
16,Support for Aegis import and export,aegis,,VersionOne,enhancement,wfranzini,new,2005-11-16T09:00:49+01:00,2008-05-25T17:14:28+02:00,It would be great if there was support for Aegis (http://aegis.sourceforge.net/) for import and export.,millerp@…
73,Add documentation for branches/tags/trunk SVN assumptions,tailor,0.9,VersionOne,enhancement,lele,new,2006-08-23T17:10:41+02:00,2007-06-15T11:37:28+02:00,"I noticed that tailor was attempting to detect trunk, tags, branches directories.  When it did detect them, it did not process them as I expected.

Please document what SVN directory structure is required for tailor to import tags as tags, etc.  I assume that is the intent of the detection?

thanks
Paul
",elegant_dice
157,More flexibility in changelog (re)formatting,tailor,,VersionOne,enhancement,lele,new,2008-05-24T17:40:40+02:00,2008-05-31T13:32:53+02:00,"I tailorized twisted's history with this fragment of tailor.config:

{{{
remove-first-log-line = True
patch-name-format = [%(revision)s] %(firstlogline)s
}}}

The result looks like this, when viewed in Trac:

http://allmydata.org/trac/twisted/timeline?from=2008-05-24&daysback=10000&ticket=on&changeset=on&milestone=on&update=Update

What I would like is to have a special format identifier, something like {{{%(changeset_number)s}}}, which is always equal to the number of the current changeset.  This is the same way that Trac assigns numbers to patches, so that the two streams of patch numbers in that URL would be identical.",zooko
53,RCS support,tailor,,VersionTwo,enhancement,lele,new,2006-05-22T09:59:01+02:00,2008-06-02T16:55:48+02:00,It would be great to have a RCS synchronization support from one RCS file to a versioned file in a bigger repository.,tailor.web@…
72,Add support for MCVS,tailor,,VersionTwo,enhancement,lele,new,2006-08-23T17:06:57+02:00,2008-06-02T16:54:37+02:00,"I have been using Meta-CVS for a while now, its proven incredibly flexible and useful.  So much so, that I found subversion inferior when I tried it with another project of mine.

http://users.footprints.net/~kaz/mcvs.html

Its commands are the same as normal CVS (a few commands have been added).  I would imagine it would not be too hard to add support?  The major difference is that files can change location and be deleted.  Ditto for directories.

I have a large project still hosted in MCVS, and I won't switch RCS until I can bring across all the versioning too.  Consider this a blocker for me, but I made it 'minor' so I don't seem too demanding!

thanks
Paul
",elegant_dice
