Re: Detecting junk "file ... was added on ..." revisions

Greg Ward <[email protected]>
Newsgroups gmane.comp.version-control.subversion.cvs2svn.devel
Message-ID <[email protected]>
On Thu, Sep 3, 2009 at 6:28 AM, Michael Haggerty<[email protected]> wrote:
>> Because lod_items.cvs_branch is unset,
>> _initial_branch_delete_unneeded() quickly bails and we lose the
>> opportunity to drop this junk revision.  ;-(
>>
>> Any clue what's going on?  When is that 'lod' object supposed to
>> change from a Symbol to a Branch?
[...]
> I assume that CVSFileItems.remove_unneeded_deletes() from
> _ProjectDataCollector._process_cvs_file_items() (which is called before
> CVSFileItems.remove_initial_branch_deletes()) has already altered the
> CVSFileItems contents.

Correct; running pass 1 with -vv shows this:

"""
0.380146: ----- pass 1 (CollectRevsPass) -----
0.380223: Examining all CVS ',v' files...
0.381825: /home/scratch/vc/tinypacs.cvs/tinypacs/Age.java,v
0.392334: Removing unnecessary delete Age.java:1.1<8>
0.394310: Removing unnecessary initial branch delete Age.java:1.3.2.1<9>
"""

However, that file was created on branch N-4 and merged to N-3, N-2,
N-1, and trunk, so it has 4 "unnecessary initial branch delete"
revisions in addition to the useless 1.1.

> Likely the assumption of the following comment
> is incorrect:
>
>        # Delete all CVSBranches rooted at this revision.  If there is
>        # a CVSRevision on the branch, it should already be an add so
>        # it doesn't have to be changed.

I think you are right: here's an excerpt from rlog output:

----------------------------
revision 1.1
date: 2009/08/14 14:00:59;  author: atyunin;  state: dead;
branches:  1.1.2;  1.1.4;  1.1.6;  1.1.8;
file Age.java was initially added on branch PACS-3-7-1.
----------------------------

Revision 1.1.2.1 is the real initial checkin.  1.1.4.1, 1.1.6.1, and
1.1.8.1 are all useless "initial delete" revisions.  I'll attach
complete rlog output for this file if you're interested.

> It would be easier to be certain what is happening if you would create a
> test case out of your repo (it probably only requires the single RCS
> file).  In fact, it would be great if you would do this anyway for our
> test suite :-)

Coming up soon.  Of course, slimming down the repo to a small test
case seems to have revealed a bug in HgOutputOption.  Argh.  I'll just
stick with the svn backend for the moment...

> Is this holding up cvs2hg or resulting in incorrect output, or is it
> just a quality-of-conversion issue?  Either way we should fix it, but
> the priorities would be set differently :-)

Just quality of conversion.  I'm wearing my "working stiff just trying
to convert a cvs repo" hat at the moment, not my "intrepid hacker
adding hg backend" hat.  ;-)

Greg

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1667&dsMessageId=2390658

To unsubscribe from this discussion, e-mail: [[email protected]].
rlog-output.txt (text/plain, 4.3 KB)
RCS file: Age.java,v
Working file: Age.java
head: 1.3
branch:
locks: strict
access list:
symbolic names:
	PACS-3-8-1: 1.3.0.2
	PACS-3-8-2: 1.1.0.8
	PACS-3-8-1-GA: 1.1.0.6
	PACS-3-7-2: 1.1.0.4
	PACS-3-7-1: 1.1.0.2
keyword substitution: k
total revisions: 18;	selected revisions: 18
description:
----------------------------
revision 1.3
date: 2009/08/14 21:53:43;  author: atyunin;  state: Exp;  lines: +19 -19
branches:  1.3.2;
BZ24903: compareTo method is refactored to correct behavior for age values
of type long
[reviewer: andrew]
[merge from PACS-3-8-2]
----------------------------
revision 1.2
date: 2009/08/14 14:02:36;  author: atyunin;  state: Exp;  lines: +105 -0
BZ24903: DateUtilities uses the new Age class.
[reviewer: drivet]
[merge from PACS-3-8-2]
----------------------------
revision 1.1
date: 2009/08/14 14:00:59;  author: atyunin;  state: dead;
branches:  1.1.2;  1.1.4;  1.1.6;  1.1.8;
file Age.java was initially added on branch PACS-3-7-1.
----------------------------
revision 1.1.8.3
date: 2009/08/14 21:53:39;  author: atyunin;  state: Exp;  lines: +19 -19
BZ24903: compareTo method is refactored to correct behavior for age values
of type long
[reviewer: andrew]
[merge from PACS-3-8-1-GA]
----------------------------
revision 1.1.8.2
date: 2009/08/14 14:02:32;  author: atyunin;  state: Exp;  lines: +105 -0
BZ24903: DateUtilities uses the new Age class.
[reviewer: drivet]
[merge from PACS-3-8-1-GA]
----------------------------
revision 1.1.8.1
date: 2009/08/14 14:00:59;  author: atyunin;  state: dead;  lines: +0 -0
file Age.java was added on branch PACS-3-8-2 on 2009-08-14 14:02:32 +0000
----------------------------
revision 1.1.6.3
date: 2009/08/14 21:53:35;  author: atyunin;  state: Exp;  lines: +19 -19
BZ24903: compareTo method is refactored to correct behavior for age values
of type long
[reviewer: andrew]
[merge from PACS-3-7-2]
----------------------------
revision 1.1.6.2
date: 2009/08/14 14:02:28;  author: atyunin;  state: Exp;  lines: +105 -0
BZ24903: DateUtilities uses the new Age class.
[reviewer: drivet]
[merge from PACS-3-7-2]
----------------------------
revision 1.1.6.1
date: 2009/08/14 14:00:59;  author: atyunin;  state: dead;  lines: +0 -0
file Age.java was added on branch PACS-3-8-1-GA on 2009-08-14 14:02:28 +0000
----------------------------
revision 1.1.4.3
date: 2009/08/14 21:53:31;  author: atyunin;  state: Exp;  lines: +19 -19
BZ24903: compareTo method is refactored to correct behavior for age values
of type long
[reviewer: andrew]
[merge from PACS-3-7-1]
----------------------------
revision 1.1.4.2
date: 2009/08/14 14:02:21;  author: atyunin;  state: Exp;  lines: +105 -0
BZ24903: DateUtilities uses the new Age class.
[reviewer: drivet]
[merge from PACS-3-7-1]
----------------------------
revision 1.1.4.1
date: 2009/08/14 14:00:59;  author: atyunin;  state: dead;  lines: +0 -0
file Age.java was added on branch PACS-3-7-2 on 2009-08-14 14:02:21 +0000
----------------------------
revision 1.1.2.2
date: 2009/08/14 21:52:30;  author: atyunin;  state: Exp;  lines: +19 -19
BZ24903: compareTo method is refactored to correct behavior for age values
of type long
[reviewer: andrew]
----------------------------
revision 1.1.2.1
date: 2009/08/14 14:00:59;  author: atyunin;  state: Exp;  lines: +105 -0
BZ24903: DateUtilities uses the new Age class.
[reviewer: drivet]
----------------------------
revision 1.3.2.4
date: 2009/08/26 20:31:11;  author: vsharma;  state: Exp;  lines: +19 -19
BZ24903: MERGE from PACS-3-8-1-GA:\n compareTo method is refactored to
correct behavior for age values of type long
[reviewer: drivet]
[merge from PACS-3-8-1-GA]
----------------------------
revision 1.3.2.3
date: 2009/08/26 20:20:27;  author: vsharma;  state: dead;  lines: +0 -0
DEV: Reverted merge of BZ2903 from PACS-3-8-1-GA
[reviewer: pcabot]
----------------------------
revision 1.3.2.2
date: 2009/08/26 18:52:25;  author: vsharma;  state: Exp;  lines: +105 -0
BZ24903: MERGE from PACS-3-8-1-GA\n: compareTo method is refactored to
correct behavior for age values of type long
[reviewer: andrew]
[merge from PACS-3-8-1-GA]
----------------------------
revision 1.3.2.1
date: 2009/08/14 21:53:43;  author: vsharma;  state: dead;  lines: +0 -105
file Age.java was added on branch PACS-3-8-1 on 2009-08-26 18:52:25 +0000
=============================================================================
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.