Thread (75 messages) 75 messages, 12 authors, 2016-06-15

Re: [PATCH v4 00/13] New remote-hg helper

From: Daniel Barkalow <hidden>
Date: 2016-06-15 22:55:10

On Wed, 31 Oct 2012, Felipe Contreras wrote:
Hi,

On Wed, Oct 31, 2012 at 7:59 PM, Jonathan Nieder [off-list ref] wrote:
quoted
Felipe Contreras wrote:
quoted
On Wed, Oct 31, 2012 at 7:20 PM, Johannes Schindelin
[off-list ref] wrote:
quoted
quoted
I just tested this with junio/next and it seems this issue is still
unfixed: instead of

        reset refs/heads/blub
        from e7510461b7db54b181d07acced0ed3b1ada072c8

I get

        reset refs/heads/blub
        from :0

when running "git fast-export ^master blub".
That is not a problem. It has been discussed extensively, and the
consensus seems to be that such command should throw nothing:

http://article.gmane.org/gmane.comp.version-control.git/208729
Um.  Are you claiming I have said that "git fast-export ^master blub"
should silently emit nothing?  Or has this been discussed extensively
with someone else?
Maybe I misunderstood when you said:
quoted
A patch meeting the above description would make perfect sense to me.
Anyway, when you have:

% git fast-export ^next next^{commit}
# nothing
% git fast-export ^next next~0
# nothing
% git fast-export ^next next~1
# nothing
% git fast-export ^next next~2
# nothing

It only makes sense that:

% git fast-export ^next next
# nothing

It doesn't get any more obvious than that. But to each his own.
I think that may be true where you have "next" in both places, but I  
think:

$ git checkout -b new-branch master
$ git fast-export ^master new-branch

ought to emit no "commit" lines, but needs to emit a "reset" line. After 
all, you haven't told fast-export that the ref "new-branch" is up to date, 
and you have told it that you want it to be exported. If you create a new 
branch off of an existing commit, don't change it, and push it to hg, it 
shouldn't be up to remote-hg to figure out what should happen with no 
input; it should get a:

reset refs/heads/new-branch
from [something]

I don't know why Johannes seems to want [something] not to be a mark 
reference (unless he's complaining about getting an invalid mark 
reference when there aren't any marks defined), but surely something of 
the above form is necessary to tell remote-hg to create the new branch.

I think it would be worth testing that:

$ git checkout -b new-branch master
$ git push hg new-branch

creates the new branch successfully (which I think it does, but wouldn't 
if "git fast-export ^master new-branch" actually returned nothing; 
parsed_refs gets it from the reset line).

AFAICT, your code relies on getting the behavior that fast-export actually 
gives, not the behavior you seem to want or the behavior Johannes seems to 
want. And the reason that you don't need any changes to fast-export is 
that your process maps marks instead of sha1s.

	-Daniel
*This .sig left intentionally blank*
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help