monotone-devel
[Top][All Lists]
Advanced

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

[Monotone-devel] branches


From: Derek Scherger
Subject: [Monotone-devel] branches
Date: Sun, 02 May 2004 21:09:42 -0600
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040225

I've been playing around with branches and propagate a bit today to try and understand how things work and I have a couple questions.

Is it possible to have something like a common branch and a platform specific branch (i.e. like net.venge.monotone and net.venge.monotone.win32) where files have incompatible changes on the two branches?

It seems that as soon as a file changes in a conflicting way that propagate simply fails (during the "phase #3" checks in diff_patch.cc). Supposing that I'd like to be able to overhaul some particular file on a development branch while maintaining a stable branch, it seems that this is a fairly likely case. Another case might be that these branches may never be merged and that the incompatible differences are the point for the branches.

It's very possible that I'm missing something here... ;)

In my poorly described "floating branch" mumbling earlier I was wondering how I might have a few related branches such as:

        common stuff
        platform 1 stuff
        platform 2 stuff
        platform 3 stuff

Each of the platform branches would want most of the common stuff and would add their own specific things. The following cases come to mind:

        1. all platform branches use an unchanged file A from the common branch

        2. most platform branches use an unchanged file B from the common branch
           some platform branches have their own specific changes to file B

        3. all platform branches have their own specific versions of file C
           file C doesn't exist on the common branch

        4. some platform branches don't want a file that does exist on the 
common branch

I was assuming that I could do this and then would have to be careful to propagate only from the common branch to the platform branches and not back but I seemed to get into trouble in case 2.

The following comment about propagate in commands.cc has me wondering what power is lost and what flexibility is gained.

  this is a special merge operator, but very useful for people maintaining
  "slightly disparate but related" trees. it does a one-way merge; less
  powerful than putting things in the same branch and also more flexible.

Thanks for any insights.
--
Cheers,
Derek




reply via email to

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