summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders Kaseorg <andersk@mit.edu>2010-04-21 23:23:07 +0200
committerMiklos Vajna <vmiklos@frugalware.org>2010-04-21 23:23:07 +0200
commit7cf5c066fa28d9de911c025537bfed77110e8e47 (patch)
treef9a7d399e29a14295fe63ab2a4aa55170bd3463b
parent080ec591ac98cd2b24fd4627c315ec62ace3b746 (diff)
downloadpython-fastimport-7cf5c066fa28d9de911c025537bfed77110e8e47.tar.gz
git-darcs: Import to a real ref (refs/remotes/darcs/$remote).
This allows the imported darcs branch to be seen by tools like ‘git branch -r’ and ‘gitk --all’, and prevents the imported commits from being garbage-collected.
-rwxr-xr-xexporters/darcs/git-darcs22
1 files changed, 11 insertions, 11 deletions
diff --git a/exporters/darcs/git-darcs b/exporters/darcs/git-darcs
index 2272cd3..03c2ec1 100755
--- a/exporters/darcs/git-darcs
+++ b/exporters/darcs/git-darcs
@@ -76,7 +76,7 @@ fetch()
location=$(get_location $remote)
git_map=$git_dir/darcs-git/$remote-git-map
darcs_map=$git_dir/darcs-git/$remote-darcs-map
- common_opts="--working $git_dir/darcs-git/repo --logfile $git_dir/darcs-git/fetch.log --git-branch=darcs/$remote"
+ common_opts="--working $git_dir/darcs-git/repo --logfile $git_dir/darcs-git/fetch.log --git-branch=refs/remotes/darcs/$remote"
dfe_opts=$(git config git-darcs.$remote.darcs-fast-export-options)
pre_fetch="$(git config git-darcs.$remote.pre-fetch)"
if [ -n "$pre_fetch" ]; then
@@ -90,10 +90,10 @@ fetch()
git fast-import --export-marks=$git_map
elif [ -f $git_map -a -f $darcs_map ]; then
echo "Updating remote $remote"
- old_rev=$(git rev-parse darcs/$remote)
+ old_rev=$(git rev-parse refs/remotes/darcs/$remote)
darcs-fast-export --import-marks=$darcs_map --export-marks=$darcs_map $common_opts $dfe_opts $location | \
git fast-import --quiet --import-marks=$git_map --export-marks=$git_map
- new_rev=$(git rev-parse darcs/$remote)
+ new_rev=$(git rev-parse refs/remotes/darcs/$remote)
if [ "$old_rev" != "$new_rev" ]; then
echo "Fetched the following updates:"
git shortlog $old_rev..$new_rev
@@ -123,9 +123,9 @@ pull()
# see if we need to merge or rebase
branch=$(git symbolic-ref HEAD|sed 's|.*/||')
if [ "$(git config branch.$branch.rebase)" = "true" ]; then
- git rebase darcs/$remote
+ git rebase refs/remotes/darcs/$remote
else
- git merge darcs/$remote
+ git merge refs/remotes/darcs/$remote
fi
}
@@ -138,11 +138,11 @@ push()
exit
fi
location=$(get_location $remote)
- if [ -n "$(git rev-list --left-right HEAD...darcs/$remote | sed -n '/^>/ p')" ]; then
+ if [ -n "$(git rev-list --left-right HEAD...refs/remotes/darcs/$remote | sed -n '/^>/ p')" ]; then
echo "HEAD is not a strict child of $remote, cannot push. Merge first"
exit
fi
- if [ -z "$(git rev-list --left-right HEAD...darcs/$remote | sed -n '/^</ p')" ]; then
+ if [ -z "$(git rev-list --left-right HEAD...refs/remotes/darcs/$remote | sed -n '/^</ p')" ]; then
echo "Nothing to push. Commit something first"
exit
fi
@@ -157,12 +157,12 @@ push()
$pre_push
fi
echo "Pushing the following updates:"
- git shortlog darcs/$remote..
+ git shortlog refs/remotes/darcs/$remote..
git fast-export --import-marks=$git_map --export-marks=$git_map HEAD | \
(cd $location; darcs-fast-import --import-marks=$darcs_map --export-marks=$darcs_map \
--logfile $git_dir/darcs-git/push.log)
if [ $? == 0 ]; then
- git update-ref darcs/$remote HEAD
+ git update-ref refs/remotes/darcs/$remote HEAD
post_push="$(git config git-darcs.$remote.post-push)"
if [ -n "$post_push" ]; then
$post_push
@@ -200,7 +200,7 @@ find_darcs()
echo "Usage: git darcs find-darcs <sha1-prefix>"
exit 1
fi
- for remote in $git_dir/darcs/*
+ for remote in $(git for-each-ref --format='%(refname)' refs/remotes/darcs)
do
remote=`basename $remote`
git_map=$git_dir/darcs-git/$remote-git-map
@@ -227,7 +227,7 @@ find_git()
echo "Usage: git darcs find-git <patch-prefix>"
exit 1
fi
- for remote in $git_dir/darcs/*
+ for remote in $(git for-each-ref --format='%(refname)' refs/remotes/darcs)
do
remote=`basename $remote`
git_map=$git_dir/darcs-git/$remote-git-map