cvs2git conversion produces "spurious" commits in the history.
Etan Reisner <[email protected]> Fri, 5 Oct 2012 14:59:20 -0400
| Newsgroups | gmane.comp.version-control.subversion.cvs2svn.devel |
|---|---|
| Message-ID | <CAM=quGXHx6njM9BdHRC2Y=3xVBxhbQiD8W0SJK=mekaYB_VuFg@mail.gmail.com> |
------=_Part_22350_552888673.1349463562691
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
While attempting a cvs2git (cvs2svn r5401, python 2.6.6, CentOS 6.3)
conversion I noticed that cvs2svn was creating some extra symbol_commit
commits that seem to be unnecessary. The commits seem to be duplicates
of one (or more) commits that appear later on the branch and simply
pre-create (via cherry pick) the contents that the correct commits would
add later.
(Note: The ultimate content of the converted repo for all tags and
branches appears, to cursory examination and the satisfaction of the
verify contrib/ script, to be consistent so this issue is history
impacting only... though I believe it does create history points that
are inconsistent with how history actually occured).
While investigating this the commonality we noticed was that the RCS
files for at least one of the files changed by these spurious commits
have 1.X revisions which have identical content to 1.X.Y.1 revisions (as
far as I can see Y is never 1 though).
Attached please find a reproducing repository and the script that
generated it. (Note: recent versions of cvs do not generate RCS files
that exhibit the behaviour necessary to trigger this issue. cvs version
1.11.17 was used to generate this repository.).
Steps to create the CVS repository:
1. Add file 'a'
2. Create branch tag 'branch'
3. Update working directory to 'branch'
4. Change file 'a'
5. Update working directory to default branch
6. Add file 'c'
7. Update working directory to 'branch'
8. Add/Import file 'c' revision 1.1
Steps as shown in converted git repository:
1. Add file 'a'
2. Update file 'a' on branch 'branch'
3. Add file 'c' on 'master'
4. Spurious symbol_commit commit to add 'c' to 'branch'
5. Add/Import file 'c' from 'master' (no content)
While poking around for information about how I might track down where
cvs2svn was getting confused I ran across references to issues 54, 55,
and 139 and I now wonder whether I may be seeing a version of the 'too
early tag' issue but I wasn't able to follow the discussion well enough
to be sure.
I hope I explained this all well enough. Let me know if I need to
explain or provide anything more. Thank you.
-Etan
P.S. In the simple case above I can just edit the spurious commit out of
the git-dump.dat file before the import to work around this problem but
I'm not sure I can do that in the real repository (I haven't tried).
------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1667&dsMessageId=3014352
To unsubscribe from this discussion, e-mail: [[email protected]].
------=_Part_22350_552888673.1349463562691
Content-Type: application/x-gzip; name=cvs2git-repro.tar.gz
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h7xhl4qx0
Content-Disposition: attachment; filename=cvs2git-repro.tar.gz
H4sIAHgFb1AAA+2W3W/TMBDA+xr/FUc2bSCRNM6nRLQpFfCwB9gYXw8IodTx1qxNXBx32oT437GT
JixsAyZ1QYB/fbBzd/adc75LyXnlnubC4nTJ2Xh0LziSKAiaMfTViB3fqZ/XjLDreF7ouH6ERw4O
cBCNILifcPqsKpFygBHlNK9Kym+zm2RFXuaV4KlgvBoiskEgvfwTTlOhZmd2NduYj1/lP4qu5F/Z
4SgM3RE4G4vgJ/zn+d96MJ7m5XiaVjOw6AohekEJuPs7WE2XjAt4+u718eHhmz1z++j9M3MsbwpD
iBdg8RPYXitB3RmEinmW806I5OUC+dJEq6iNSLYepdJ6BXlRO7Hmc7AK2G0ed2sTuGSXDFR+hFpl
263XxlnGPp3kC/rwEXxBIKFkxsDc9kzY35eja9bSDzDJMtiTAmzCR9jZAeU4lTLlsjOro/kMJFdR
SFtQiq8ItXIG1tFx/wBtALWDFHBnLNJTsKYw5WlJZp10tZSxd8J27dtlJitOLbfkr2c86Xsg4N28
1xXZGWAbA0H90xw0r/iEswJeTA5eAjFRm/9+/atzbf4jcLf+78r6D7Hn6v4/BDfkP318vlkfKsG+
79+a/wBHP+Y/kGrd/wdgRtPMkE0jRikhtKpiVF0WU7aokNG0lydSaTu2G6MFI/Mqlv2Y50TEiLCi
oKUwki1IYvWtSMvMSOZyjpBcg1RfM1wHuzZ2bCewcWD7vpzHRroSM8ahfeOxIVMge+Dzi2WMGqdU
uld+XRVYSS+EEdebKsFtG+Pf2/j7fiijFUFJso53wU5RUrdylCAhbVCC0VpZ+60N2n7d2aRYdv6m
eUvjP53OO3ND/ZPh6z+8Xv9Y1/8QDF7/3n3Vf7ip+iddbXvX6//6f6nO+m8sf41Go9FoNBqNRqPR
aDQajUaj0Wg0/yDfAPfa2dkAKAAA
------=_Part_22350_552888673.1349463562691--