commit e730157933b56de990631fcd0c36592713b32120 from: Stefan Sperling date: Mon Mar 18 15:54:15 2019 UTC fix 'got log PATH' in a bare git repository; broken by previous commit - 6c7ab9213e39b6a690152fe8ffb18fe1f15a9ccb commit + e730157933b56de990631fcd0c36592713b32120 blob - 32ed25930a57db98595d201cd260b1d73b46142a blob + c32eb50c74c9d25165e37c1ab0064520c45ea011 --- got/got.c +++ got/got.c @@ -835,16 +835,27 @@ cmd_log(int argc, char *argv[]) goto done; error = NULL; - if (argc == 0) + if (argc == 0) { path = strdup(""); - else if (argc == 1) { - error = got_worktree_resolve_path(&path, worktree, argv[0]); - if (error) + if (path == NULL) { + error = got_error_from_errno(); goto done; + } + } else if (argc == 1) { + if (worktree) { + error = got_worktree_resolve_path(&path, worktree, + argv[0]); + if (error) + goto done; + } else { + path = strdup(argv[0]); + if (path == NULL) { + error = got_error_from_errno(); + goto done; + } + } } else usage_log(); - if (path == NULL) - goto done; repo_path = worktree ? strdup(got_worktree_get_repo_path(worktree)) : strdup(cwd); blob - 1e0c31ab493c7eb86539cf585e80f33a4be1e856 blob + 2d890ea4314893d12659cc3245962719a2d2d08a --- regress/cmdline/log.sh +++ regress/cmdline/log.sh @@ -16,6 +16,27 @@ . ./common.sh +function test_log_in_repo { + local testroot=`test_init log_in_repo` + local head_rev=`git_show_head $testroot/repo` + + echo "commit $head_rev (master)" > $testroot/stdout.expected + + for p in "" "." alpha epsilon epsilon/zeta; do + (cd $testroot/repo && got log $p | \ + grep ^commit > $testroot/stdout) + cmp $testroot/stdout.expected $testroot/stdout + ret="$?" + if [ "$ret" != "0" ]; then + diff -u $testroot/stdout.expected $testroot/stdout + test_done "$testroot" "$ret" + return 1 + fi + done + + test_done "$testroot" "0" +} + function test_log_in_worktree { local testroot=`test_init log_in_worktree` local head_rev=`git_show_head $testroot/repo` @@ -56,4 +77,5 @@ function test_log_in_worktree { test_done "$testroot" "0" } +run_test test_log_in_repo run_test test_log_in_worktree