help getting a clue about tracking changes in an integrated library

Chris Hecker checker at d6.com
Thu Sep 23 17:41:08 BST 2010


> I don't think I could make that work. I would be forever making
> changes in repo1/trunk/lib that wouldn't get synced to
> repo2/lib-mine, and these would probably regress on updates to lib
> via lib-orig or lib-mod.

I guess I value the robustness in the trunk more.  I need to be able to 
come back a year later and sync it to some arbitrary version on another 
machine and have it "just work" without remembering how to set it up. 
It's just too scary to have a core component "not be there".  I actually 
worry about this with real nested trees/externals as well, but the 
design page says it will be easy to create a mirror for the nested 
projects, so I'm assuming that will at least minimize the problem, but I 
could still see things rotting and being unable to sync the project 
correctly to an arbitrary point in time.

marius:
> You may also be able to use one of the following to help you manage
> these branches:
> https://launchpad.net/bzr-externals
> https://launchpad.net/bzr-scmproj
> I've used both in anger and they help a lot.

Interesting.  Are there docs online, or do I need to install them to get 
help?

Chris




On 2010/09/23 00:47, Stephen J. Turnbull wrote:
> Chris Hecker writes:
>
>   >  This is exactly the "poor man's nested branch" model. Since you've
>   >  >  invented it for yourself, it's the obvious way for you to go.
>   >
>   >  No, I think this is different.  I'm proposing this:
>   >
>   >  repo1 - trunk -+- src
>   >                  |
>   >                  +- lib
>   >
>   >  repo2 -+- lib-mine
>   >          |
>   >          +- lib-mod
>   >          |
>   >          +- lib-orig
>
>   >  lib-mine and trunk/lib are not in the same directory or symlinked
>   >  or anything, which if I understand the hacky nesting is what you're
>   >  suggesting (hence the bzrignore lib).  I just copy between lib and
>   >  lib-mine with, like, cp.
>
> I don't think I could make that work.  I would be forever making
> changes in repo1/trunk/lib that wouldn't get synced to repo2/lib-mine,
> and these would probably regress on updates to lib via lib-orig or
> lib-mod.
>
>   >  This sucks, because lib and lib-mine need to be synced, but at
>   >  least repo1 is atomic and can be rolled back, which does not work
>   >  with the PMNB model, right?
>
> Not directly in bzr, right.  How about
>
> $ cat>  rbzr<<EOT
> #! /bin/sh
> bzr $@
> case $1 in
> tag|rollback) for d in lib1 lib2; do cd $d; bzr $@; done ;;
> esac
> exit 0
> EOT
> $ rbzr commit -m "And now for something completely different..."
> $ rbzr tag idle
> $ rbzr rollback eric
>
> then?
>



More information about the bazaar mailing list