How to manage heads on a remote repository?

6 messages, 3 authors, 2016-06-15 · open the first message on its own page

How to manage heads on a remote repository?

From: "Theodore Ts'o" <tytso@mit.edu>
Date: 2016-06-15 22:43:41

I'm currently exploring the idea of not only making the equivalent of
"pu" and "next" available on a public repository for one of my projects,
but also the topics/* branches.   When thinking about how I might do
this, one snag I ran into is that the topics/foo and topics/bar branches
are ephemeral, and so when I replicate them to a remote repository,
either on kernel.org or repo.or.cz, I would need a way of removing a
head for a topic branch that had already been merged.

Creating new topics/foo branch or updating is easy; just do a git push,
and they will get created on the remote side.  I don't see an easy way
of deleting a ref on a remote branch, so any automation at the moment
looks like it would require me writing my own script and using something
like this:

      ssh remote-host git --git-dir=xxx branch -D topics/foo

... which of course wouldn't work repo.or.cz since it requires shell
access.

Am I missing anything?

							- Ted

Re: How to manage heads on a remote repository?

From: Michael Witten <hidden>
Date: 2016-06-15 22:43:41

On 14 Oct 2007, at 6:46:25 AM, Theodore Ts'o wrote:
so any automation at the moment
looks like it would require me writing my own script and using  
something
like this:

      ssh remote-host git --git-dir=xxx branch -D topics/foo

... which of course wouldn't work repo.or.cz since it requires shell
access.

Am I missing anything?
With my little exposure to git, I'd say it's not currently possible
with the git ui, but please wait for someone more authoritative to
say so.

In any case, I've run across similar problems, and I think this is
a good time to point out the feature that would be nice:
	
	All (most) git ui operations should be (relatively)
	transparent across networks;

I would like to clone to a remote server, for instance.

Michael Witten

Re: How to manage heads on a remote repository?

From: David Symonds <hidden>
Date: 2016-06-15 22:43:41

On 14/10/2007, Theodore Ts'o [off-list ref] wrote:
I'm currently exploring the idea of not only making the equivalent of
"pu" and "next" available on a public repository for one of my projects,
but also the topics/* branches.   When thinking about how I might do
this, one snag I ran into is that the topics/foo and topics/bar branches
are ephemeral, and so when I replicate them to a remote repository,
either on kernel.org or repo.or.cz, I would need a way of removing a
head for a topic branch that had already been merged.
git push <remote> :<branch_name>

If the left side of the colon in a push refspec is empty, it deletes
the remote ref given by the right hand side.


Dave.

Re: How to manage heads on a remote repository?

From: Theodore Tso <tytso@mit.edu>
Date: 2016-06-15 22:43:41

On Sun, Oct 14, 2007 at 09:03:48PM +1000, David Symonds wrote:
On 14/10/2007, Theodore Ts'o [off-list ref] wrote:
quoted
I'm currently exploring the idea of not only making the equivalent of
"pu" and "next" available on a public repository for one of my projects,
but also the topics/* branches.   When thinking about how I might do
this, one snag I ran into is that the topics/foo and topics/bar branches
are ephemeral, and so when I replicate them to a remote repository,
either on kernel.org or repo.or.cz, I would need a way of removing a
head for a topic branch that had already been merged.
git push <remote> :<branch_name>

If the left side of the colon in a push refspec is empty, it deletes
the remote ref given by the right hand side.
Cool, thanks!  It's not in the git-push man page.  I'll play with it
some and then submit a patch update the man page.

     	      	       	     	    	    - Ted

Re: How to manage heads on a remote repository?

From: David Symonds <hidden>
Date: 2016-06-15 22:43:41

On 14/10/2007, Theodore Tso [off-list ref] wrote:
On Sun, Oct 14, 2007 at 09:03:48PM +1000, David Symonds wrote:
quoted
git push <remote> :<branch_name>

If the left side of the colon in a push refspec is empty, it deletes
the remote ref given by the right hand side.
Cool, thanks!  It's not in the git-push man page.  I'll play with it
some and then submit a patch update the man page.
Yes, it is, including in the examples section. Under the <refspec>
options description it says:

  Pushing an empty <src> allows you to delete the <dst> ref from
  the remote repository.

In the examples section, it says:

  git push origin :experimental
         Find a ref that matches experimental in the origin repository
         (e.g. refs/heads/experimental), and delete it.


Dave.

Re: How to manage heads on a remote repository?

From: Theodore Tso <tytso@mit.edu>
Date: 2016-06-15 22:43:41

On Sun, Oct 14, 2007 at 09:12:43PM +1000, David Symonds wrote:
On 14/10/2007, Theodore Tso [off-list ref] wrote:
quoted
On Sun, Oct 14, 2007 at 09:03:48PM +1000, David Symonds wrote:
quoted
git push <remote> :<branch_name>

If the left side of the colon in a push refspec is empty, it deletes
the remote ref given by the right hand side.
Cool, thanks!  It's not in the git-push man page.  I'll play with it
some and then submit a patch update the man page.
Yes, it is, including in the examples section. 
Wow, I completely missed that!  It would be nice if:

       <refspec>
          The canonical format of a <refspec> parameter is +?<src>:<dst>; that
          is, an optional plus +, followed by the source ref, followed by a
          colon :, followed by the destination ref.

.... mentioned that the source ref could be optional (just like it
explicitly says the '+' is optional)...

          The <src> side can be an arbitrary "SHA1 expression" that can be
          used as an argument to git-cat-file -t. E.g. master~4 (push four
          parents before the current master head).

.... and I think the throwaway sentence at the end of the refspec
would be better at the end of the second paragraph above.  I'll send a
patch.

Thanks for pointing that out!

       	      	     	 		  - Ted
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help