Re: CVS2GIT possible parents of Tags / Branches

James Blackburn <[email protected]>
Newsgroups gmane.comp.version-control.subversion.cvs2svn.user,gmane.comp.version-control.subversion.rapidsvn.devel
Message-ID <[email protected]>
Attached is a potential patch for the issue; as I don't have the best handle
on what's going on, feedback would be appreciated!

When building the cvs symbol information, _process_ntdbrs annotates branch
symbols which would be visible on head with ntdbr=True.  This step occurs
before the register_tag_possible_parents.  The patch simply adds Trunk as a
possible parent when it see ntdbr = True.

This seems to have a positive effect on the example I posted earlier (the
produced symbol out file looks sane), however it does perturb the tests...

Taking a look at the first failure (14), README has:

  2.  Then tagged everyone with T_ALL_INITIAL_FILES.

  3.  Then tagged everyone except sub1/subsubB/default with
      T_ALL_INITIAL_FILES_BUT_ONE.

  4.  Then created branch B_FROM_INITIALS on everyone.

  5.  Then created branch B_FROM_INITIALS_BUT_ONE on everyone except
      /sub1/subsubB/default.

Before my patch, the SVN repo has:

Creating Subversion r14 (copying to branch 'B_FROM_INITIALS')
Creating Subversion r15 (copying to tag 'T_ALL_INITIAL_FILES')
Creating Subversion r16 (copying to tag 'T_ALL_INITIAL_FILES_BUT_ONE')
Creating Subversion r17 (copying to branch 'B_FROM_INITIALS_BUT_ONE')

After my patch:

Creating Subversion r14 (copying to tag 'T_ALL_INITIAL_FILES')
Creating Subversion r15 (copying to tag 'T_ALL_INITIAL_FILES_BUT_ONE')
Creating Subversion r16 (copying to branch 'B_FROM_INITIALS')
Creating Subversion r17 (copying to branch 'B_FROM_INITIALS_BUT_ONE')

Which seems to be closer to README.

I'll have a look at the other failures, however it would be interesting to
know whether the change is in principle good or whether I've missed
something fundamental.

Cheers,
James

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

To unsubscribe from this discussion, e-mail: [[email protected]].
cvs2git.patch (application/octet-stream, 1 KB)
### Eclipse Workspace Patch 1.0
#P cvs2svn-dev
Index: cvs2svn_lib/symbol_statistics.py
===================================================================
--- cvs2svn_lib/symbol_statistics.py	(revision 5248)
+++ cvs2svn_lib/symbol_statistics.py	(working copy)
@@ -167,11 +167,19 @@
     # revision where the branch is rooted:
     register(parent_cvs_rev.lod)
 
+    # If the parent_cvs_rev is visible on trunk (ntdbr) then we 
+    # should consider trunk as a valid parent for the tag.
+    ntdbr = parent_cvs_rev.ntdbr
+    if ntdbr:
+      register(cvs_file_items.trunk)
+
     # Branches that are rooted at the same revision are also
     # possible parents:
     for branch_id in parent_cvs_rev.branch_ids:
       parent_symbol = cvs_file_items[branch_id].symbol
-      register(parent_symbol)
+      # Ensure we don't add Trunk more than once for ntdbr revs
+      if not ntdbr or not isinstance(parent_symbol, Trunk):
+        register(parent_symbol)
 
   def is_ghost(self):
     """Return True iff this lod never really existed."""
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.