summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJed Brown <jed@59A2.org>2013-02-18 10:48:46 -0600
committerJed Brown <jed@59A2.org>2013-02-18 10:48:46 -0600
commit6208687a0ba1f6c3e84630a42035cc6b7947d989 (patch)
tree09e89ce9068052ab73da2174fdd23acdef68dc44
parent0f143e2d41cc70db5777cbf8d00aa52858e18fc3 (diff)
downloadgit-fat-6208687a0ba1f6c3e84630a42035cc6b7947d989.tar.gz
Fix broken rsync pull, bug introduced in 309f63097a
-rwxr-xr-xgit-fat7
-rwxr-xr-xtest-retroactive.sh16
2 files changed, 22 insertions, 1 deletions
diff --git a/git-fat b/git-fat
index 6afa017..799a05a 100755
--- a/git-fat
+++ b/git-fat
@@ -124,7 +124,10 @@ class GitFat(object):
rshopts += ' -p ' + ssh_port
if rshopts:
cmd.append('--rsh=ssh' + rshopts)
- cmd += [self.objdir + '/', remote + '/']
+ if push:
+ cmd += [self.objdir + '/', remote + '/']
+ else:
+ cmd += [remote + '/', self.objdir + '/']
return cmd
def revparse(self, revname):
return subprocess.check_output(['git', 'rev-parse', revname]).strip()
@@ -295,6 +298,7 @@ class GitFat(object):
pushall = '--all' in args
files = self.referenced_objects(all=pushall) & self.catalog_objects()
cmd = self.get_rsync_command(push=True)
+ self.verbose('Executing: %s' % ' '.join(cmd))
p = subprocess.Popen(cmd, stdin=subprocess.PIPE)
p.communicate(input='\x00'.join(files))
def checkout(self, show_orphans=False):
@@ -328,6 +332,7 @@ class GitFat(object):
refargs['rev'] = rev
files = self.referenced_objects(**refargs) - self.catalog_objects()
cmd = self.get_rsync_command(push=False)
+ self.verbose('Executing: %s' % ' '.join(cmd))
p = subprocess.Popen(cmd, stdin=subprocess.PIPE)
p.communicate(input='\x00'.join(files))
self.checkout()
diff --git a/test-retroactive.sh b/test-retroactive.sh
index b5c2ffe..dd02367 100755
--- a/test-retroactive.sh
+++ b/test-retroactive.sh
@@ -32,3 +32,19 @@ git checkout HEAD^
rm *
git checkout .
ls -al
+
+# Set up place to push
+git checkout master
+cat > .gitfat <<EOF
+[rsync]
+remote = $(realpath ../retro-store)
+EOF
+git add .gitfat
+git commit -m'Add .gitfat for local push'
+git fat push
+
+cd ..
+git clone file:///$(realpath retro) retro-clone
+cd retro-clone
+git fat init
+git fat pull