From: merlyn@stonehenge.com (Randal L. Schwartz)
To: hs_glw <greg@hra.net>
Cc: git@vger.kernel.org
Subject: Re: Big Mess--How to use Git to resolve
Date: Sat, 17 Dec 2011 07:33:06 -0800 [thread overview]
Message-ID: <86iplf2oy5.fsf@red.stonehenge.com> (raw)
In-Reply-To: <1324125130643-7103964.post@n2.nabble.com> (hs glw's message of "Sat, 17 Dec 2011 04:32:10 -0800 (PST)")
>>>>> "hs" == hs glw <greg@hra.net> writes:
hs> Some clients have customizations of the code, some have version 5 of the
hs> software others have 5.2, 5.5 etc.
Create an empty repo.
Unpack the oldest release (I presume you still have the tarballs) you
might have forked a customer from. commit it, and tag it as v5.0 (or
whatever it is).
In the same dir, delete the files, and unpack the *next* release. git
add . again, and commit that, effectively recording the changes from one
release to the next. Tag it v5.1 or whatever.
Repeat for all releases.
git branch -m master release
That will remain your untouched release branch.
Now, take customer1. Figure out which release is closest to their
modified code. Let's say it's v5.2
git checkout -b customer1 v5.2
erase the files, copy their work in, and commit. You'll now have a
customer1 branch that comes off the right release.
repeat for each customer.
So now you have tags for each release, and every customer's code checked
in somewhere.
If you feel brave, you can try to move a customer to a later release:
git checkout customer1
git rebase v5.5
That will try to apply the diff between v5.2 and customer1 directly to
the top of v5.5. Might fail, might need some mopping up. But at least
the hard work is done.
Hope this helps.
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.posterous.com/ for Smalltalk discussion
next prev parent reply other threads:[~2011-12-17 15:38 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-17 12:32 Big Mess--How to use Git to resolve hs_glw
2011-12-17 15:33 ` Randal L. Schwartz [this message]
2011-12-17 18:40 ` hs_glw
2011-12-19 17:04 ` Holger Hellmuth
2011-12-21 23:06 ` Neal Kreitzinger
2011-12-21 23:44 ` Neal Kreitzinger
2011-12-21 23:56 ` Seth Robertson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86iplf2oy5.fsf@red.stonehenge.com \
--to=merlyn@stonehenge.com \
--cc=git@vger.kernel.org \
--cc=greg@hra.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.