centralized workflow and tracking upstream questions
Tom Vaughan
tom at software6.net
Wed Apr 2 00:20:02 BST 2008
Hi,
First, I'm a bit new to bazaar, so I'm sure I may have something
incorrect below. Corrections are appreciated. I've seen several
tutorials on bazaar-vcs.org and elsewhere but they all seem somewhat
incomplete, and I have yet to make what I want work. So...
I'd like to take a wordpress template and modify it for use on my
website. The author releases versions of the template as .zip's. I'd
like keep track of these vendor releases, mark each release as a tag,
keep a vendor branch that is the merge of each of these releases, and
have my own trunk where I can incorporate updates made in the vendor
branch into my own trunk. If my terminology seems a bit
subversion-ish, that's because that's where most of my experience
lies. Add to which I'd like to do this via a centralized repository
and a smart server. For now I'm just using direct file access via
file:///. Please ignore the obvious file permission issues below. What
I've done so far is:
cd /srv/bzr
bzr init-repo --no-trees website
mkdir website/branches
mkdir website/tags
bzr init website/branches/vendor
bzr init website/trunk
bzr branch -r0 website/branches/vendor website/tags/template-0.1
bzr branch -r0 website/branches/vendor website/tags/template-0.2
cd ~
bzr co file:///srv/bzr/website/tags/template-0.1
cd template-0.1
# add .zip contents
bzr add *
bzr ci -m "this is template version 0.1"
cd ..
bzr co file:///srv/bzr/website/branches/vendor
cd vendor
bzr merge file:///srv/bzr/website/tags/template-0.1
bzr ci -m "this is template version 0.1" --unchanged
cd ..
bzr co file:///srv/bzr/website/trunk website
cd website
bzr merge file:///srv/bzr/branches/vendor
bzr ci -m "merged with vendor branch" --unchanged
# make updates
bzr ci -m "added curse words"
cd ..
# I'll repeat the merge above when a new vendor release is made
bzr co file:///srv/bzr/website/tags/template-0.2
cd template-0.2
# add .zip contents
bzr add *
bzr ci -m "this is template version 0.2"
cd ..
cd vendor
bzr merge file:///srv/bzr/website/tags/template-0.2
bzr: ERROR: Branches have no common ancestor, and no merge base
revision was specified.
Why is this? The tags share a parent branch. Or am I just completely
off the mark on how this *should* be done.
$ bzr info /srv/bzr/website/branches/vendor/
Repository branch (format: pack-0.92)
Location:
shared repository: /srv/bzr/website
repository branch: /srv/bzr/website/branches/vendor
$ bzr info /srv/bzr/website/tags/template-0.1
Repository branch (format: pack-0.92)
Location:
shared repository: /srv/bzr/website
repository branch: /srv/bzr/website/tags/template-0.1
Related branches:
parent branch: /srv/bzr/website/branches/vendor
$ bzr info /srv/bzr/website/tags/template-0.2
Repository branch (format: pack-0.92)
Location:
shared repository: /srv/bzr/website
repository branch: /srv/bzr/website/tags/template-0.2
Related branches:
parent branch: /srv/bzr/website/branches/vendor
Bonus Question: Why the use of "--unchanged" on some of the check-ins
above? As I understand it I still need to check-in after the merge so
that the updates are propagated to the centralized repository. No? So
why would bzr tell me there's nothing to check-in when "--unchanged"
is omitted? If I run `bzr log` after the check-in I have two new
revisions which appear to be exactly the same.
Thanks.
-Tom
P.S. I understand that I could just start with the vendor branch, copy
in each release, "add" and "rm" as needed, "ci", and "tag." But that
means a person is responsible for incorporating each vendor release
into the vendor branch. I really want some automated way to do this so
a person doesn't have to figure out what's been added or removed in
each release.
More information about the bazaar
mailing list