Subject: git fetch-pack can't fetch refs/stash

From: "Stefan (metze) Metzmacher" <[email-masked]>
Date: Thu, 29 Apr 2010 12:24:51 +0200

Hi,

I tried to fetch refs/stash from my repository (for backup),
however 'git fetch myremote +refs/stash:refs/remotes/myremote/stash'
just fails with $? = 1 (without any output).

That's confusing because 'git ls-remote myremote' shows refs/stash.

After some debugging I found the reason for the problem.

'git fetch-pack /path/to/myremote refs/stash' also just returns
$? = 1.

filter_refs() skips 'refs/stash', because check_ref_format()
returns CHECK_REF_FORMAT_ONELEVEL.

Is that a bug or a feature?

The easiest fix would be to allow CHECK_REF_FORMAT_ONELEVEL to pass in
the same way as CHECK_REF_FORMAT_OK. But I'm not sure if that would
have other side effects.

For now I work around it by doing:
'mkdir stash.d; cd stash.d; ln -s ../stash .'
and use
git fetch myremote +refs/stash.d/stash:refs/remotes/myremote/stash

metze