git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Joining a fixed archive with its continuation
@ 2006-09-01 11:56 Sergio Callegari
  2006-09-01 14:12 ` Jakub Narebski
  2006-09-01 14:37 ` Johannes Schindelin
  0 siblings, 2 replies; 3+ messages in thread
From: Sergio Callegari @ 2006-09-01 11:56 UTC (permalink / raw)
  To: git

Hi,

I am trying to follow Johannes (Dscho) suggestions to join a fixed
archive with a new archive, that is its continuation from the latest
working tree.
I am having some trouble with rebase, and any help would be appreciated.
>
> You can "graft" the new onto the old branch:
>   
Yes, grafts are fine... however, if I am to use push/pull for
transferring data between two computers I am working on, I'd like better
a "history rewriting" approach, so that I do not need to manually copy
the grafts.

> NOTE! This is the quickest way if you want to have the history _locally_.
>
> If you want to be able to distribute it (or synchronize it between your 
> laptop and PC _with git!_), you can rewrite the history by either 
> git-rebase, or by using cg-admin-rewritehist if you are using cogito.
>
>   
I have tried using git-rebase (I do not have cg, at least not yet).
However I am encountering some problems...

Everything is fine with the master branch of my continuation archive doing

git rebase fixed-master master

(where fixed-master is the master head of the recovered archive)
This does the trick nicely. I.e. I start with

A---B---C---D    E---F---G---H---I


where D is fixed-master and I is master, and I end up with

A---B---C---D---E'---F'---G'---H'---I'

plus the older tree E---...---I

However I am then in trouble with the other branches of the continuation
archive, which I simply cannot get right...
In fact, E...I has actually a branch, say at G, like in

E---F---G---H---I
         \
          --M---N


And I cannot make an M'---N' based at G'... the best that I am
succeeding in is building an

E''--F''--G''--M'--N'


based on D.

> Ciao,
> Dscho
>
> P.S.: Of course, if you do not insist on a super clean history, you can 
> fake a merge. Just put <40-hex-chars-old> into .git/MERGE_HEAD and commit. 
> This will pretend that your new head and your old head were merged, and 
> the result is the new head. This _should_ even work with git-bisect, but 
> it is slightly ugly.

Before I try, can you better explain me what shall go on in this case?
The man page of commit actually does not say much about commit behavior
during a merge (i.e. with MERGE_HEAD set).

Thanks,

Sergio

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-09-01 14:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-01 11:56 Joining a fixed archive with its continuation Sergio Callegari
2006-09-01 14:12 ` Jakub Narebski
2006-09-01 14:37 ` Johannes Schindelin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).