git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Aguilar <davvid@gmail.com>
To: Dongas <dongas86@gmail.com>
Cc: Russell Steicke <russellsteicke@gmail.com>, git@vger.kernel.org
Subject: Re: A question about changing remote repo name
Date: Tue, 5 Jan 2010 13:15:23 -0800	[thread overview]
Message-ID: <20100105211521.GC2657@gmail.com> (raw)
In-Reply-To: <60ce8d251001042030l75c5443gf173f127ad206df3@mail.gmail.com>


Hi,

On Tue, Jan 05, 2010 at 12:30:03PM +0800, Dongas wrote:
> 2010/1/5 Russell Steicke <russellsteicke@gmail.com>:
> > On Mon, Jan 4, 2010 at 2:45 PM, Dongas <dongas86@gmail.com> wrote:
> 
> Thanks a lot, Russell.
> I followed you instruction but it seemed it needs more changes.
> 
> Execute your steps....
> Becomes:
> root@ubuntu:/work/git-repo/free_monkey# tree -a

Just a note: I would recommend against being root.
You cloned the repo so you should own it.

More below...


> root@ubuntu:/work/git-repo/free_monkey# cat .git/config
> [core]
> 	repositoryformatversion = 0
> 	filemode = true
> 	bare = false
> 	logallrefupdates = true
> [remote "karmic"]
> 	url = git@192.168.1.116:free_monkey.git
> 	fetch = +refs/heads/*:refs/remotes/karmic/*
> [branch "master"]
> 	remote = karmic
> 	merge = refs/heads/master
> 
> But the result was:
> root@ubuntu:/work/git-repo/free_monkey# git branch -a
> * master
>   karmic/HEAD
>   origin/master
> The 'origin/master' was still not changed.


A safter alternative would be to leave the "origin" lines in
place as a duplicate of karmic:

[remote "karmic"]
	url = git@192.168.1.116:free_monkey.git
	fetch = +refs/heads/*:refs/karmic/origin/*

[remote "origin"]
	url = git@192.168.1.116:free_monkey.git
	fetch = +refs/heads/*:refs/remotes/origin/*


At that point you will have two remotes, "karmic" and "origin".
"git fetch karmic" to get the latest branches.

Finally, "git remote rm origin" to remove all references to it.

> I did a few more steps:
> root@ubuntu:/work/git-repo/free_monkey# grep -wrin 'origin' .
> ./.git/packed-refs:2:abfae429bb4081043e84681e5ee94102085f87e0
> refs/remotes/origin/master
> ./.git/refs/remotes/karmic/HEAD:1:ref: refs/remotes/origin/master
> 
> Change 'origin' to 'karmic' in above files.


You can skip this step by using "git remote rm" as described
above.


> The steps are a little complicated.
> Do you know if there's a way to rename the remote on server side?
> If there is, then everyone could just clone the project with a new
> remote name rather than the defaul 'origin'.

Unfortunately, no.  "origin" is actually a local thing.
Your local git client gives it that name.  As you can see, the
remote does not care whether we call it "origin" or "karmic".


There were some patches flying around on the ML some time ago
that allowed you to change the default "origin" name on the
client side at "git clone" time (or maybe patches never
materialized and it was purely discussion).

That was a while ago (probably over a year ago) and this wasn't
anybody's itch to scratch in the meantime so nothing every
materialized.  It think this is only the 2nd time this has come
up in that whole time.  Sorry, I wasn't able to find the thread.


Here's a nice middle ground --

instead of naming your branch "master" you can call your default
branch "karmic".

To make it the default for "git clone" then you'll need to push
your local master branch and call it "karmic" over there:

	git push origin master:karmic

Then, go to that server and change the repo's HEAD entry so that
it points to karmic instead of master.

	ssh admin@gitbox
	cd /path/to/repo.git
	vi HEAD

>From then on, everyone who clones the repo will have a "karmic"
branch by default instead of the master branch.

To get that branch on repos that were cloned before the change:

	git fetch origin
	git checkout -b karmic origin/karmic



With this setup you might even want to remove the "master"
branch altogether since it might be confusing to have both:

Once:
	git push origin :master

In everyone's repo:
	git remote prune origin


You will need to make sure everyone has either:
	a) cloned from the new master-less repo
	b) run the "checkout -b" and "remote prune" commands

Otherwise someone'll likely "git push" the master branch back
into existence.


-- 
		David

  reply	other threads:[~2010-01-05 21:15 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-04  6:45 A question about changing remote repo name Dongas
2010-01-04 20:09 ` Miklos Vajna
2010-01-05  1:53   ` Dongas
2010-01-05  1:57     ` Erik Faye-Lund
2010-01-05  2:25       ` Dongas
2010-01-05  2:52 ` Russell Steicke
2010-01-05  4:30   ` Dongas
2010-01-05 21:15     ` David Aguilar [this message]
2010-01-06  3:55       ` Dongas
2010-01-06  0:07     ` Russell Steicke
2010-01-06  0:27       ` Johannes Schindelin
2010-01-07  1:53         ` Russell Steicke
2010-01-06  1:02       ` Junio C Hamano
2010-01-06  3:58       ` Dongas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100105211521.GC2657@gmail.com \
    --to=davvid@gmail.com \
    --cc=dongas86@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=russellsteicke@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).