git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* How to pull remote branch with specified commit id?
@ 2009-01-13  9:08 Emily Ren
  2009-01-13  9:16 ` Andreas Ericsson
  2009-01-13  9:43 ` Johannes Sixt
  0 siblings, 2 replies; 8+ messages in thread
From: Emily Ren @ 2009-01-13  9:08 UTC (permalink / raw)
  To: Git Mailinglist

Git experts,

I want to pull remote branch with specified commit id, how to do it?

Below command can get remote branch
$git pull remote refs/heads/$branch_name

Below command doesn't work
$git pull remote objects/$commit_id

Thanks,
Emily

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

* Re: How to pull remote branch with specified commit id?
  2009-01-13  9:08 How to pull remote branch with specified commit id? Emily Ren
@ 2009-01-13  9:16 ` Andreas Ericsson
  2009-01-13 13:15   ` Emily Ren
  2009-01-13  9:43 ` Johannes Sixt
  1 sibling, 1 reply; 8+ messages in thread
From: Andreas Ericsson @ 2009-01-13  9:16 UTC (permalink / raw)
  To: Emily Ren; +Cc: Git Mailinglist

Emily Ren wrote:
> Git experts,
> 
> I want to pull remote branch with specified commit id, how to do it?
> 
> Below command can get remote branch
> $git pull remote refs/heads/$branch_name
> 
> Below command doesn't work
> $git pull remote objects/$commit_id
> 

You need to fetch it first, and then merge the commit you want. The
tools operating the fetching protocol only use refs, so if you want
to fetch (or pull) a specific version that has neither a tag nor a
branch head pointing to it, you'll have to write a new tool for that.

The end-result of the following command will be, barring side-effects
in the remote-tracking branches, identical to what you're trying to
do though:
git fetch remote && git merge $commit_id

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

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

* Re: How to pull remote branch with specified commit id?
  2009-01-13  9:08 How to pull remote branch with specified commit id? Emily Ren
  2009-01-13  9:16 ` Andreas Ericsson
@ 2009-01-13  9:43 ` Johannes Sixt
  2009-01-13 21:57   ` Brad King
  1 sibling, 1 reply; 8+ messages in thread
From: Johannes Sixt @ 2009-01-13  9:43 UTC (permalink / raw)
  To: Emily Ren; +Cc: Git Mailinglist

Emily Ren schrieb:
> Git experts,
> 
> I want to pull remote branch with specified commit id, how to do it?
> 
> Below command can get remote branch
> $git pull remote refs/heads/$branch_name
> 
> Below command doesn't work
> $git pull remote objects/$commit_id

You can't, and that is so by design.

Consider this: You accidentally push a branch with confidential data to a
public repository. You notice it early, and quickly delete the branch
using 'git push the-repo :refs/heads/that-branch'. At this time the
objects with the confidential data are still lingering in the public
repository. But with the current behavior noone can access them even if
the SHA1 happens to be known.

-- Hannes

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

* Re: How to pull remote branch with specified commit id?
  2009-01-13  9:16 ` Andreas Ericsson
@ 2009-01-13 13:15   ` Emily Ren
  0 siblings, 0 replies; 8+ messages in thread
From: Emily Ren @ 2009-01-13 13:15 UTC (permalink / raw)
  To: Andreas Ericsson; +Cc: Git Mailinglist

Andreas,

I tried your method, it works. Thank you very much !

Emily

On Tue, Jan 13, 2009 at 5:16 PM, Andreas Ericsson <ae@op5.se> wrote:
> Emily Ren wrote:
>>
>> Git experts,
>>
>> I want to pull remote branch with specified commit id, how to do it?
>>
>> Below command can get remote branch
>> $git pull remote refs/heads/$branch_name
>>
>> Below command doesn't work
>> $git pull remote objects/$commit_id
>>
>
> You need to fetch it first, and then merge the commit you want. The
> tools operating the fetching protocol only use refs, so if you want
> to fetch (or pull) a specific version that has neither a tag nor a
> branch head pointing to it, you'll have to write a new tool for that.
>
> The end-result of the following command will be, barring side-effects
> in the remote-tracking branches, identical to what you're trying to
> do though:
> git fetch remote && git merge $commit_id
>
> --
> Andreas Ericsson                   andreas.ericsson@op5.se
> OP5 AB                             www.op5.se
> Tel: +46 8-230225                  Fax: +46 8-230231
>

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

* Re: How to pull remote branch with specified commit id?
  2009-01-13  9:43 ` Johannes Sixt
@ 2009-01-13 21:57   ` Brad King
  2009-01-14  5:54     ` thestar
  2009-01-14  7:01     ` Johannes Sixt
  0 siblings, 2 replies; 8+ messages in thread
From: Brad King @ 2009-01-13 21:57 UTC (permalink / raw)
  To: Johannes Sixt; +Cc: Git Mailinglist

Johannes Sixt wrote:
> Consider this: You accidentally push a branch with confidential data to a
> public repository. You notice it early, and quickly delete the branch
> using 'git push the-repo :refs/heads/that-branch'. At this time the
> objects with the confidential data are still lingering in the public
> repository. But with the current behavior noone can access them even if
> the SHA1 happens to be known.

Might a repack (perhaps an automatic one) put the object in a pack
(perhaps in a delta chain) that can be fetched through another ref?

-Brad

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

* Re: How to pull remote branch with specified commit id?
  2009-01-13 21:57   ` Brad King
@ 2009-01-14  5:54     ` thestar
  2009-01-14  7:02       ` Johannes Sixt
  2009-01-14  7:01     ` Johannes Sixt
  1 sibling, 1 reply; 8+ messages in thread
From: thestar @ 2009-01-14  5:54 UTC (permalink / raw)
  To: Brad King; +Cc: Johannes Sixt, Git Mailinglist

> Johannes Sixt wrote:
>> Consider this: You accidentally push a branch with confidential data to a
>> public repository. You notice it early, and quickly delete the branch
>> using 'git push the-repo :refs/heads/that-branch'. At this time the
>> objects with the confidential data are still lingering in the public
>> repository. But with the current behavior noone can access them even if
>> the SHA1 happens to be known.

Doesn't this line of reasoning only apply to the ssh and git transports?
  (ie, the file and rsync transport would retrieve it regardless)

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

* Re: How to pull remote branch with specified commit id?
  2009-01-13 21:57   ` Brad King
  2009-01-14  5:54     ` thestar
@ 2009-01-14  7:01     ` Johannes Sixt
  1 sibling, 0 replies; 8+ messages in thread
From: Johannes Sixt @ 2009-01-14  7:01 UTC (permalink / raw)
  To: Brad King; +Cc: Git Mailinglist

Brad King schrieb:
> Johannes Sixt wrote:
>> Consider this: You accidentally push a branch with confidential data to a
>> public repository. You notice it early, and quickly delete the branch
>> using 'git push the-repo :refs/heads/that-branch'. At this time the
>> objects with the confidential data are still lingering in the public
>> repository. But with the current behavior noone can access them even if
>> the SHA1 happens to be known.
> 
> Might a repack (perhaps an automatic one) put the object in a pack
> (perhaps in a delta chain) that can be fetched through another ref?

No, assuming that-branch was the only ref that contained the objects.

Even if the repack happens before the branch is deleted, the objects that
were *only* in that-branch will not be sent out.

-- Hannes

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

* Re: How to pull remote branch with specified commit id?
  2009-01-14  5:54     ` thestar
@ 2009-01-14  7:02       ` Johannes Sixt
  0 siblings, 0 replies; 8+ messages in thread
From: Johannes Sixt @ 2009-01-14  7:02 UTC (permalink / raw)
  To: thestar; +Cc: Brad King, Git Mailinglist

thestar@fussycoder.id.au schrieb:
>> Johannes Sixt wrote:
>>> Consider this: You accidentally push a branch with confidential data
>>> to a
>>> public repository. You notice it early, and quickly delete the branch
>>> using 'git push the-repo :refs/heads/that-branch'. At this time the
>>> objects with the confidential data are still lingering in the public
>>> repository. But with the current behavior noone can access them even if
>>> the SHA1 happens to be known.
> 
> Doesn't this line of reasoning only apply to the ssh and git transports?
>  (ie, the file and rsync transport would retrieve it regardless)

You are right. Http and rsync would happily ship the object.

-- Hannes

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

end of thread, other threads:[~2009-01-14  7:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-13  9:08 How to pull remote branch with specified commit id? Emily Ren
2009-01-13  9:16 ` Andreas Ericsson
2009-01-13 13:15   ` Emily Ren
2009-01-13  9:43 ` Johannes Sixt
2009-01-13 21:57   ` Brad King
2009-01-14  5:54     ` thestar
2009-01-14  7:02       ` Johannes Sixt
2009-01-14  7:01     ` Johannes Sixt

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).