Re: git fast-import : How to change parent during import?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jonathan,

On Tue, 8 Mar 2011 16:23:28 -0600
Jonathan Nieder <jrnieder@xxxxxxxxx> wrote:

> The "tag fixup" idea is that in VCSes like CVS, tags do not
> necessarily match the content on any branch.  So the history looks
> somewhat like so (time flowing left to right):
> 
>                      TAG
>                     /
>  o --- o --- o --- o --- o --- o ...
> 
> instead of the perhaps more sensible
> 
>  o --- o --- o --- TAG --- o --- o ...
> 
> The side branch leading up to a tag does not correspond to any branch
> name; after it is in the correct state one can use the "tag" command
> to get it remembered in permanent history.  The same technique might
> be useful whenever you are creating history that is not meant to stay
> permanently on any branch.

I don't think the TAG_FIXUP trick is what I need in this case. Assume the
following:

A --- B --- C --- D ...    (branch1)
      \
       E --- F --- G ...   (branch2)

Now assume that we are at commit D when we detect a commit to branch2. At this
point there is no way of knowing the origin commit in branch1. What is currently
being done is to use commit D as the parent of branch2, which is incorrect. But
if we assume that all branches are created through a "cp" like command, then we
know that B=E. So my idea is to go over A, B, C, etc and commit E "from:" each
one and see which results in a zero differences diff-tree.

Unfortunately, the current implementation I am using doesn't feel simple enough.
Because I'm using commands external to fast-import, I need to be constantly
making use of "checkpoint". And this seems to not be good enough, because I need
to sleep during 0.1s (didn't try other values) after each "checkpoint" before
being able to use diff-tree and similar commands. I am also forced to use the
"--force" command due to all the orphan commits I leave behind.

I would really prefer to have a simpler solution. Do you, or anyone else, see
another option?

Thanks in advance,
-- 
Vitor Antunes
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]