Ticket #69 (new defect)

Opened 7 years ago

Last modified 7 years ago

git to darcs broken in multiple ways

Reported by: jgoerzen Owned by: lele
Priority: major Milestone: VersionOne
Component: git Version: 0.9
Keywords: Cc: jgoerzen@…

Description (last modified by lele) (diff)

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

Change History

comment:1 Changed 7 years ago by lele

  • Component changed from tailor to git
  • Description modified (diff)

Fixed markup.

comment:2 Changed 7 years ago by jgoerzen

  • Cc jgoerzen@… added

comment:3 Changed 7 years ago by lele

I looked at git documentation, and as I supposed that 'C' stands for "Copied". Given that tailor does not support COPY events, I think that the backend should convert those to ADD events, like the svn backend does.

But to fix the thing a proper description of the line emitted by "git-diff-tree" is needed.

comment:4 Changed 7 years ago by jgoerzen

Here is diff-tree output:

$ git diff-tree --root -r -M --name-status ad6571a78ac74e9fa27e581834709067dba459af 6b9269abd64c54f11dc4aaf162d2915fccae6c77
C055    include/asm-ppc64/siginfo.h     include/asm-powerpc/bugs.h
R085    include/asm-ppc64/mc146818rtc.h include/asm-powerpc/mc146818rtc.h
A       include/asm-powerpc/module.h
R062    include/asm-ppc64/sembuf.h      include/asm-powerpc/sembuf.h
R072    include/asm-ppc64/shmbuf.h      include/asm-powerpc/shmbuf.h
R057    include/asm-ppc64/siginfo.h     include/asm-powerpc/siginfo.h
R088    include/asm-ppc64/socket.h      include/asm-powerpc/socket.h
R084    include/asm-ppc64/sockios.h     include/asm-powerpc/sockios.h
D       include/asm-ppc/bugs.h
D       include/asm-ppc/mc146818rtc.h
D       include/asm-ppc/module.h
D       include/asm-ppc/sembuf.h
D       include/asm-ppc/shmbuf.h
D       include/asm-ppc/siginfo.h
D       include/asm-ppc/socket.h
D       include/asm-ppc/sockios.h
D       include/asm-ppc64/bugs.h
D       include/asm-ppc64/module.h

Note: See TracTickets for help on using tickets.