I'm maintaining a large(ish) repo for production deployments of
various software like Apache httpd, OpenSSL, etc.

What I have is a [vendor] branch for the vanilla vendor software (ie:
httpd-2.2.27.tar.gz), and "feature branches" for configuration/tweaks
(ie: [redhat_build] for building for redhat hosts).

Working with a model of this setup, it was interesting to me that if I:
b1 b2
|   /
|  /  <--- divergent, no common artifacts.
|/
. [origin, trunk]


b1 branch == the [trunk] we're all familiar with
b2 == my [vendor]

Premise: I commit a file "myfile" to trunk (let's say contents are
"I'm in trunk!"), then checkout origin (an initial empty commit), and
then create a file "myfile" (contents: "I'm in vendor!"), and commit
--branch vendor.

If I "f co trunk; f merge vendor", I'll get a "no common ancestors"
warning (which is expected), but *also* no change to "myfile". I don't
know what the expect here per se, so I can't say it was unexpected.

If I then "f co vendor; echo "another line" >> myfile; fossil ci -m
'update on vendor'"
then "f co trunk;fossil merge vendor" the effect (in [trunk],
remember) is a file:

====
I'm in trunk!
another line
====

I thought the effect was neat, and it's a bit different than how I
usually handle vendor branches (where I usually create a vendor branch
and immediately merge into trunk, then their inextricably linked from
the beginning of their lives as artifacts.

Interesting enough I thought I'd share.

-bch
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to