monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] About the recent change of cvs_import...


From: Richard Levitte - VMS Whacker
Subject: [Monotone-devel] About the recent change of cvs_import...
Date: Fri, 20 May 2005 07:35:03 +0200 (CEST)

Hi,

I just started playing with cvs_import to move some projects currently
handled with CVS to monotone.

Imagine my surprise when the different branches weren't connected!
And I was sure an earlier experiment had handled my branches properly.

When I check around, I noticed that it was a recent change in
rcs_import.cc, and it comes with a huge comment explaining the whole
thing.  I can understand the reasons to do it in this new way, since
it's quite a lot of work figuring out where the branch point is.

However, there's one part of that comment that I just can't get my
brain around:

      second, some files do not have a branch B, or worse, have
      branched into B from an "ancestor" branch A, where a different
      file branches into B from a different ancestor branch C. in
      other words, while there *is* a tree structure within the X.Y.Z
      branches of each file, there is *no* shared tree structure
      between the branch names across a repository. in one file A can
                                                    ^^^^^^^^^^^^^^^^^
      be an ancestor of B, in another file B can be an ancestor of A.
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

That last part seems like a description of a mal-formed CVS
repository, where someone fiddled a little bit too much with the admin
command, or took the time (and the pain) to branch each file
individually.

I believe there *is* a tree structure in a CVS repository, or CVS
would be even worse than it already is.  Could it be the vendor branch
that makes it look like there's not?

Basically, one has to consider that CVS cuts a lot of corners with
it's file-oriented view of changes.  For example, I have a file that
has branched off the vendor branch, and that in itself should really
be seen as a propagate from the vendor branch to the main branch,
followed by (at a later point in time) a branch.

So basically, the vendor branch needs special treatment.  Any import
to it should be interpreted as a commit followed by a propagate to the
main branch.  cvs_import would have to keep that in mind while
figuring out branch points.

Unfortunately, I'm currently swamped with work and releasing OpenSSL,
so I won't be able to really dive into this problem quite yet.

Cheers,
Richard

-----
Please consider sponsoring my work on free software.
See http://www.free.lp.se/sponsoring.html for details.

-- 
Richard Levitte                         address@hidden
                                        http://richard.levitte.org/

"When I became a man I put away childish things, including
 the fear of childishness and the desire to be very grown up."
                                                -- C.S. Lewis





reply via email to

[Prev in Thread] Current Thread [Next in Thread]