Jeff King [off-list ref] writes:
PS I probably would have done it as:
git init vendor
cd vendor
import import import
cd ..
git init project
cd project
git fetch ../vendor master:vendor
but I don't think there's anything wrong with your approach (in fact,
it's slightly more efficient).
Probably I am slower than my usual slow self this morning. Does Michael's
approach go like this:
git init project
cd project
import import import
git branch -m vendor
git checkout -b master
to fork from third-party codebase?
Or Michael had his own 'master' already and wanted an independent orphaned
history from vendor, perhaps like this?
git init project
cd project
work work work
git checkout --orphan vendor
: perhaps "git clean -f" here???
import import import
git checkout master
: rootless merge???
git merge vendor
On Mon, Feb 06, 2012 at 10:17:55AM -0800, Junio C Hamano wrote:
quoted
PS I probably would have done it as:
git init vendor
cd vendor
import import import
cd ..
git init project
cd project
git fetch ../vendor master:vendor
but I don't think there's anything wrong with your approach (in fact,
it's slightly more efficient).
Probably I am slower than my usual slow self this morning. Does Michael's
approach go like this:
git init project
cd project
import import import
git branch -m vendor
git checkout -b master
to fork from third-party codebase?
I thought it would have been:
git init project
cd project
git checkout -b vendor
import import import
git checkout -b master
modify modify modify
but he can probably say more.
-Peff
On 02/06/2012 07:17 PM, Junio C Hamano wrote:
Jeff King [off-list ref] writes:
Probably I am slower than my usual slow self this morning. Does Michael's
approach go like this:
git init project
cd project
import import import
git branch -m vendor
git checkout -b master
to fork from third-party codebase?
I'm not really forking the third-party code; I'm just importing a
snapshot to a particular subdirectory of my own project. I wanted to do
something like:
git init project
cd project
git checkout -b vendor
import import import commit (into subdirectory "foo")
git checkout --orphan master
git clean -fxd
hack commit hack commit
# Then when the vendor stuff is logically needed in master:
git merge vendor
With the option to import later snapshots of the third-party code to the
"vendor" branch then re-merge it to master.
Care to come up with a patch to Documentation/git-checkout.txt? The
description there strongly implies that <start point> is an existing
commit. Not much is said about what the lack of <start point> mean when
it describes "checkout -b", and a standalone description of <start point>
says "The name of a comit at which to start... Defaults to HEAD". These
need to be loosened and described in terms of the closer-to-the-user "at
my current state".
I'll work on it as soon as I have time.
Michael
--
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/