diff -r 7ffbd911dbc9 -r 113281667205 tests/test-githelp.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-githelp.t Mon Dec 18 20:44:59 2017 -0800 @@ -0,0 +1,258 @@ + $ cat >> $HGRCPATH << EOF + > [extensions] + > githelp = + > EOF + + $ hg init repo + $ cd repo + $ echo foo > test_file + $ mkdir dir + $ echo foo > dir/file + $ echo foo > removed_file + $ echo foo > deleted_file + $ hg add -q . + $ hg commit -m 'bar' + $ hg bookmark both + $ touch both + $ touch untracked_file + $ hg remove removed_file + $ rm deleted_file + +githelp on a single command should succeed + $ hg githelp -- commit + hg commit + $ hg githelp -- git commit + hg commit + +githelp should fail nicely if we don't give it arguments + $ hg githelp + abort: missing git command - usage: hg githelp -- + [255] + $ hg githelp -- git + abort: missing git command - usage: hg githelp -- + [255] + +githelp on a command with options should succeed + $ hg githelp -- commit -pm "abc" + hg record -m 'abc' + +githelp on a command with standalone unrecognized option should succeed with warning + $ hg githelp -- commit -p -v + ignoring unknown option -v + hg record + +githelp on a command with unrecognized option packed with other options should fail with error + $ hg githelp -- commit -pv + abort: unknown option v packed with other options + Please try passing the option as it's own flag: -v + [255] + +githelp for git rebase --skip + $ hg githelp -- git rebase --skip + hg revert --all -r . + hg rebase --continue + +githelp for git commit --amend (hg commit --amend pulls up an editor) + $ hg githelp -- commit --amend + hg commit --amend + +githelp for git commit --amend --no-edit (hg amend does not pull up an editor) + $ hg githelp -- commit --amend --no-edit + hg amend + +githelp for git checkout -- . (checking out a directory) + $ hg githelp -- checkout -- . + note: use --no-backup to avoid creating .orig files + + hg revert . + +githelp for git checkout "HEAD^" (should still work to pass a rev) + $ hg githelp -- checkout "HEAD^" + hg update .^ + +githelp checkout: args after -- should be treated as paths no matter what + $ hg githelp -- checkout -- HEAD + note: use --no-backup to avoid creating .orig files + + hg revert HEAD + +githelp for git checkout with rev and path + $ hg githelp -- checkout "HEAD^" -- file.txt + note: use --no-backup to avoid creating .orig files + + hg revert -r .^ file.txt + +githelp for git with rev and path, without separator + $ hg githelp -- checkout "HEAD^" file.txt + note: use --no-backup to avoid creating .orig files + + hg revert -r .^ file.txt + +githelp for checkout with a file as first argument + $ hg githelp -- checkout test_file + note: use --no-backup to avoid creating .orig files + + hg revert test_file + +githelp for checkout with a removed file as first argument + $ hg githelp -- checkout removed_file + note: use --no-backup to avoid creating .orig files + + hg revert removed_file + +githelp for checkout with a deleted file as first argument + $ hg githelp -- checkout deleted_file + note: use --no-backup to avoid creating .orig files + + hg revert deleted_file + +githelp for checkout with a untracked file as first argument + $ hg githelp -- checkout untracked_file + note: use --no-backup to avoid creating .orig files + + hg revert untracked_file + +githelp for checkout with a directory as first argument + $ hg githelp -- checkout dir + note: use --no-backup to avoid creating .orig files + + hg revert dir + +githelp for checkout when not in repo root + $ cd dir + $ hg githelp -- checkout file + note: use --no-backup to avoid creating .orig files + + hg revert file + + $ cd .. + +githelp for checkout with an argument that is both a file and a revision + $ hg githelp -- checkout both + hg update both + +githelp for checkout with the -p option + $ hg githelp -- git checkout -p xyz + hg revert -i -r xyz + + $ hg githelp -- git checkout -p xyz -- abc + note: use --no-backup to avoid creating .orig files + + hg revert -i -r xyz abc + +githelp for checkout with the -f option and a rev + $ hg githelp -- git checkout -f xyz + hg update -C xyz + $ hg githelp -- git checkout --force xyz + hg update -C xyz + +githelp for checkout with the -f option without an arg + $ hg githelp -- git checkout -f + hg revert --all + $ hg githelp -- git checkout --force + hg revert --all + +githelp for grep with pattern and path + $ hg githelp -- grep shrubbery flib/intern/ + hg grep shrubbery flib/intern/ + +githelp for reset, checking ~ in git becomes ~1 in mercurial + $ hg githelp -- reset HEAD~ + hg reset .~1 + $ hg githelp -- reset "HEAD^" + hg reset .^ + $ hg githelp -- reset HEAD~3 + hg reset .~3 + +githelp for git show --name-status + $ hg githelp -- git show --name-status + hg log --style status -r tip + +githelp for git show --pretty=format: --name-status + $ hg githelp -- git show --pretty=format: --name-status + hg stat --change tip + +githelp for show with no arguments + $ hg githelp -- show + hg show + +githelp for show with a path + $ hg githelp -- show test_file + hg show . test_file + +githelp for show with not a path: + $ hg githelp -- show rev + hg show rev + +githelp for show with many arguments + $ hg githelp -- show argone argtwo + hg show argone argtwo + $ hg githelp -- show test_file argone argtwo + hg show . test_file argone argtwo + +githelp for show with --unified options + $ hg githelp -- show --unified=10 + hg show --config diff.unified=10 + $ hg githelp -- show -U100 + hg show --config diff.unified=100 + +githelp for show with a path and --unified + $ hg githelp -- show -U20 test_file + hg show . test_file --config diff.unified=20 + +githelp for stash drop without name + $ hg githelp -- git stash drop + hg shelve -d + +githelp for stash drop with name + $ hg githelp -- git stash drop xyz + hg shelve -d xyz + +githelp for whatchanged should show deprecated message + $ hg githelp -- whatchanged -p + This command has been deprecated in the git project, thus isn't supported by this tool. + + +githelp for git branch -m renaming + $ hg githelp -- git branch -m old new + hg bookmark -m old new + +When the old name is omitted, git branch -m new renames the current branch. + $ hg githelp -- git branch -m new + hg bookmark -m `hg log -T"{activebookmark}" -r .` new + +Branch deletion in git strips commits + $ hg githelp -- git branch -d + hg strip -B + $ hg githelp -- git branch -d feature + hg strip -B feature -B + $ hg githelp -- git branch --delete experiment1 experiment2 + hg strip -B experiment1 -B experiment2 -B + +githelp for reuse message using the shorthand + $ hg githelp -- git commit -C deadbeef + hg commit -M deadbeef + +githelp for reuse message using the the long version + $ hg githelp -- git commit --reuse-message deadbeef + hg commit -M deadbeef + +githelp for apply with no options + $ hg githelp -- apply + hg import --no-commit + +githelp for apply with directory strip custom + $ hg githelp -- apply -p 5 + hg import --no-commit -p 5 + +git merge-base + $ hg githelp -- git merge-base --is-ancestor + ignoring unknown option --is-ancestor + NOTE: ancestors() is part of the revset language. + Learn more about revsets with 'hg help revsets' + + hg log -T '{node}\n' -r 'ancestor(A,B)' + +githelp for git blame + $ hg githelp -- git blame + hg annotate -udl