* [PATCH] cg-clone fails to clone tags
@ 2005-06-01 1:58 Miguel Bazdresch
0 siblings, 0 replies; only message in thread
From: Miguel Bazdresch @ 2005-06-01 1:58 UTC (permalink / raw)
To: git
Hi,
I noticed that cg-clone fails to clone tags when the source and
destination directories are on different filesystems (this is on a local
clone). The command produces warnings of the type:
cp: cannot create link `.git/refs/tags/git-pasky-0.6.2': Invalid cross-device link
`/home/miguel/bin/cogito/.git/refs/tags/git-pasky-0.6.3' -> `.git/refs/tags/git-pasky-0.6.3'
I think the culprit is the "l" flag passed to cp in fetch-local() in
script cg-pull. After thinking a bit on how to solve this, I decided on
a "blunt force" approach, where the cp is done twice, once with "l" and
once without it. Only when both fail is a warning issued about the
failure to get the tag list.
This has the unfortunate side effect of also removing the "u" flag to
cp, but I don't think it's a big deal (cg-pull adds the "l" and "u"
flags at the same time).
Following is the output of cg-mkpatch:
---
Currently, cg-clone fails to clone the tag list if the destination
and source directory are in different filesystem. This caused by the
"l" flag used by fetch_local.
This patch tries the copy without the "l" flag if it fails with it.
Signed-off-by: Miguel Bazdresch <miguelb@ieee.org>
---
commit 5823514635ca67be41914d9294081353b70272a4
tree 19092122a45366f46b7f140d411f875000ff2ba7
parent 20e473c9afd8b5d2d549b0e7881473600beb9c37
author Miguel Bazdresch <miguelb@ieee.org> Tue, 31 May 2005 20:23:44
-0500
committer Miguel Bazdresch <miguelb@ieee.org> Tue, 31 May 2005 20:23:44
-0500
cg-pull | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/cg-pull b/cg-pull
--- a/cg-pull
+++ b/cg-pull
@@ -259,8 +259,16 @@ rsyncerr=
$fetch -i -s -u -d "$uri/refs/tags" "$_git/refs/tags" || rsyncerr=1
if [ "$rsyncerr" ]; then
rsyncerr=
- $fetch -i -s -u -d "$uri/tags" "$_git/refs/tags" || rsyncerr=1
+ $fetch -i -s -d "$uri/refs/tags" "$_git/refs/tags" || rsyncerr=1
fi
+if [ "$rsyncerr" ]; then
+rsyncerr=
+ $fetch -i -s -u -d "$uri/tags" "$_git/refs/tags" || rsyncerr=1
+fi
+if [ "$rsyncerr" ]; then
+rsyncerr=
+ $fetch -i -s -d "$uri/tags" "$_git/refs/tags" || rsyncerr=1
+fi
[ "$rsyncerr" ] && echo "unable to get tags list (non-fatal)" >&2
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-06-01 1:51 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-01 1:58 [PATCH] cg-clone fails to clone tags Miguel Bazdresch
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.