From: Clark Williams <hidden> Date: 2016-06-15 22:43:06
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello git-list,
We're experimenting with using git for the mock source repository on
fedoraproject.org. The CVS repository was converted over and I
successfully cloned a repository and went merrily on my way.
One of my collaborators cloned the repository the other day and found
that it didn't have any branches in it. I cloned a temp copy of it and
found that the files that normally would be in refs/heads to identify
the branches had somehow been moved to the directory
refs/remotes/origin. In my local repository (which was cloned
immediately after the CVS import), if I list what's in refs/heads, I get
this:
$ ls -F refs/heads
master mock mock-0-6-branch mock-0.7 origin
on the whacky cloned copy, I get this:
$ ls -F refs/heads
master
and if I look in refs/remotes/origin:
$ ls -F refs/remotes/origin
HEAD master mock mock-0-6-branch mock-0.7 origin
Can anyone come up with a way that I could have mangled the repository
with a push? I mean, I have no idea how that remotes/origin directory
got created; I don't even have an interactive login on
git.fedoraproject.org.
If anyone wants to see the repository, you can clone it from:
git://git.fedoraprojects.org/git/hosted/mock
I'm not sure if it makes sense to try and repair this or just start
anew. Any advice would be appreciated.
Clark
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iD4DBQFGLj0xqA4JVb61b9cRAhWYAJ49SDX6EnRxkFkJGjq5TUjhHjP2kwCWOJfK
obOqRJwU0vOq/aZDsM3glw==
=XwQr
-----END PGP SIGNATURE-----
From: Shawn O. Pearce <hidden> Date: 2016-06-15 22:43:06
Clark Williams [off-list ref] wrote:
One of my collaborators cloned the repository the other day and found
that it didn't have any branches in it. I cloned a temp copy of it and
found that the files that normally would be in refs/heads to identify
the branches had somehow been moved to the directory
refs/remotes/origin. In my local repository (which was cloned
immediately after the CVS import), if I list what's in refs/heads, I get
this:
$ ls -F refs/heads
master mock mock-0-6-branch mock-0.7 origin
on the whacky cloned copy, I get this:
$ ls -F refs/heads
master
and if I look in refs/remotes/origin:
$ ls -F refs/remotes/origin
HEAD master mock mock-0-6-branch mock-0.7 origin
This is a change in Git versions. Pre Git-1.5.0 we used to put all
of the branches from the remote system into refs/heads, but now in
1.5.0 and later we put them in refs/remotes/origin.
Nothing screwed up on the central repository, its just the
new layout. refs/heads is reserved for *this* local repository,
while refs/remotes/$name is reserved for the heads of $name remote
repository.
--
Shawn.
From: J. Bruce Fields <hidden> Date: 2016-06-15 22:43:06
On Tue, Apr 24, 2007 at 01:30:48PM -0400, Shawn O. Pearce wrote:
This is a change in Git versions. Pre Git-1.5.0 we used to put all
of the branches from the remote system into refs/heads, but now in
1.5.0 and later we put them in refs/remotes/origin.
Nothing screwed up on the central repository, its just the
new layout. refs/heads is reserved for *this* local repository,
while refs/remotes/$name is reserved for the heads of $name remote
repository.
From: Clark Williams <hidden> Date: 2016-06-15 22:43:06
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Shawn O. Pearce wrote:
Clark Williams [off-list ref] wrote:
quoted
One of my collaborators cloned the repository the other day and found
that it didn't have any branches in it. I cloned a temp copy of it and
found that the files that normally would be in refs/heads to identify
the branches had somehow been moved to the directory
refs/remotes/origin. In my local repository (which was cloned
immediately after the CVS import), if I list what's in refs/heads, I get
this:
$ ls -F refs/heads
master mock mock-0-6-branch mock-0.7 origin
on the whacky cloned copy, I get this:
$ ls -F refs/heads
master
and if I look in refs/remotes/origin:
$ ls -F refs/remotes/origin
HEAD master mock mock-0-6-branch mock-0.7 origin
This is a change in Git versions. Pre Git-1.5.0 we used to put all
of the branches from the remote system into refs/heads, but now in
1.5.0 and later we put them in refs/remotes/origin.
Nothing screwed up on the central repository, its just the
new layout. refs/heads is reserved for *this* local repository,
while refs/remotes/$name is reserved for the heads of $name remote
repository.
Ah, so I'm not totally inept, just unable to read release notes. Sigh.
But, I'm still confused. After you clone the central repository, with
the new layout, why can't I 'mock checkout -f mock-0-6-branch'? Do I
need to further qualify it, or create a local branch from it?
Probably a better question is: what man-page/web-page/mail-thread should
I read to figure this out?
Clark
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iD8DBQFGLkIAqA4JVb61b9cRAn8VAJ9Q7U4ZxP4Jc6OSyd1rcVufbBOO6wCfdDUn
Pmo7URBzl8PcCSRXu5BqYc0=
=yl7q
-----END PGP SIGNATURE-----
From: Shawn O. Pearce <hidden> Date: 2016-06-15 22:43:06
Clark Williams [off-list ref] wrote:
But, I'm still confused. After you clone the central repository, with
the new layout, why can't I 'mock checkout -f mock-0-6-branch'? Do I
need to further qualify it, or create a local branch from it?
I don't know what the mock command does... but if you meant:
git checkout -f mock-0-6-branch
then you want to add the origin/ prefix to qualify it, as you want
the branch from the origin remote. That should cause your head to
get detached however:
git checkout -f origin/mock-0-6-branch
at which point you aren't on any branch at all. So you might
want to make your own mock-0-6-branch starting at your origin's
current version:
git checkout -f -b mock-0-6-branch origin/mock-0-6-branch
--
Shawn.
From: Clark Williams <hidden> Date: 2016-06-15 22:43:06
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Shawn O. Pearce wrote:
Clark Williams [off-list ref] wrote:
quoted
But, I'm still confused. After you clone the central repository, with
the new layout, why can't I 'mock checkout -f mock-0-6-branch'? Do I
need to further qualify it, or create a local branch from it?
I don't know what the mock command does... but if you meant:
git checkout -f mock-0-6-branch
Heh, yes that's what I meant. :)
then you want to add the origin/ prefix to qualify it, as you want
the branch from the origin remote. That should cause your head to
get detached however:
git checkout -f origin/mock-0-6-branch
at which point you aren't on any branch at all. So you might
want to make your own mock-0-6-branch starting at your origin's
current version:
git checkout -f -b mock-0-6-branch origin/mock-0-6-branch
Ah, I think that's what I was looking for.
Thanks,
Clark
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iD8DBQFGLkQDqA4JVb61b9cRAt8OAJ9sPWLuiA0n/WKO7EzYH40GhFN0ZgCfY6Mw
J7m60FS67Rj4ESgnVNRfjl8=
=iuic
-----END PGP SIGNATURE-----