From ac0817b212c95153fdea87f1d6a47da8cfeca0dd Mon Sep 17 00:00:00 2001 From: Tim Hockin Date: Fri, 15 Sep 2017 10:04:50 -0700 Subject: [PATCH] Fix one-shot sync of a rev --- cmd/git-sync/main.go | 6 +++--- test_e2e.sh | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/cmd/git-sync/main.go b/cmd/git-sync/main.go index b13f9f2..10d6604 100644 --- a/cmd/git-sync/main.go +++ b/cmd/git-sync/main.go @@ -179,6 +179,9 @@ func main() { continue } if initialSync { + if *flOneTime { + os.Exit(0) + } if isHash, err := revIsHash(*flRev, *flRoot); err != nil { log.Errorf("can't tell if rev %s is a git hash, exiting", *flRev) os.Exit(1) @@ -186,9 +189,6 @@ func main() { log.V(0).Infof("rev %s appears to be a git hash, no further sync needed", *flRev) sleepForever() } - if *flOneTime { - os.Exit(0) - } initialSync = false } diff --git a/test_e2e.sh b/test_e2e.sh index a178429..7b05d8a 100755 --- a/test_e2e.sh +++ b/test_e2e.sh @@ -369,5 +369,27 @@ pkill git-sync wait pass +# Test rev-sync one-time +testcase "rev-once" +# First sync +echo "$TESTCASE" > "$REPO"/file +git -C "$REPO" commit -qam "$TESTCASE" +REV=$(git -C "$REPO" rev-list -n1 HEAD) +GIT_SYNC \ + --logtostderr \ + --v=5 \ + --wait=0.1 \ + --repo="$REPO" \ + --rev="$REV" \ + --root="$ROOT" \ + --dest="link" \ + --one-time > "$DIR"/log."$TESTCASE" 2>&1 +sleep 2 +assert_link_exists "$ROOT"/link +assert_file_exists "$ROOT"/link/file +assert_file_eq "$ROOT"/link/file "$TESTCASE" +# Wrap up +pass + echo "cleaning up $DIR" rm -rf "$DIR"