1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327
|
$ 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 -- <git command>
[255]
$ hg githelp -- git
abort: missing git command - usage: hg githelp -- <git command>
[255]
githelp on a command with options should succeed
$ hg githelp -- commit -pm "abc"
hg commit --interactive -m 'abc'
githelp on a command with standalone unrecognized option should succeed with warning
$ hg githelp -- commit -p -v
ignoring unknown option -v
hg commit --interactive
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 its 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 update .~1
$ hg githelp -- reset "HEAD^"
hg update .^
$ hg githelp -- reset HEAD~3
hg update .~3
$ hg githelp -- reset --mixed HEAD
note: --mixed has no meaning since Mercurial has no staging area
hg update .
$ hg githelp -- reset --soft HEAD
note: --soft has no meaning since Mercurial has no staging area
hg update .
$ hg githelp -- reset --hard HEAD
hg update --clean .
githelp for git show --name-status
$ hg githelp -- git show --name-status
hg log --style status -r .
githelp for git show --pretty=format: --name-status
$ hg githelp -- git show --pretty=format: --name-status
hg status --change .
githelp for show with no arguments
$ hg githelp -- show
hg export
githelp for show with a path
$ hg githelp -- show test_file
hg cat test_file
githelp for show with not a path:
$ hg githelp -- show rev
hg export rev
githelp for show with many arguments
$ hg githelp -- show argone argtwo
hg export argone argtwo
$ hg githelp -- show test_file argone argtwo
hg cat test_file argone argtwo
githelp for show with --unified options
$ hg githelp -- show --unified=10
hg export --config diff.unified=10
$ hg githelp -- show -U100
hg export --config diff.unified=100
githelp for show with a path and --unified
$ hg githelp -- show -U20 test_file
hg cat test_file --config diff.unified=20
githelp for stash drop without name
$ hg githelp -- git stash drop
hg shelve -d <shelve name>
githelp for stash drop with name
$ hg githelp -- git stash drop xyz
hg shelve -d xyz
githelp for stash list with patch
$ hg githelp -- git stash list -p
hg shelve -l -p
githelp for stash show
$ hg githelp -- git stash show
hg shelve --stat
githelp for stash show with patch and name
$ hg githelp -- git stash show -p mystash
hg shelve -p mystash
githelp for stash clear
$ hg githelp -- git stash clear
hg shelve --cleanup
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 reuse message using HEAD
$ hg githelp -- git commit --reuse-message HEAD~
hg commit -M .~1
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
githelp for apply with prefix directory
$ hg githelp -- apply --directory=modules
hg import --no-commit --prefix modules
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
githelp for add
$ hg githelp -- git add
hg add
$ hg githelp -- git add -p
note: Mercurial will commit when complete, as there is no staging area in Mercurial
hg commit --interactive
$ hg githelp -- git add --all
note: use hg addremove to remove files that have been deleted
hg add
githelp for reflog
$ hg githelp -- git reflog
hg journal
note: in hg commits can be deleted from repo but we always have backups
$ hg githelp -- git reflog --all
hg journal --all
note: in hg commits can be deleted from repo but we always have backups
$ hg githelp -- git log -Gnarf
hg grep --diff narf
$ hg githelp -- git log -S narf
hg grep --diff narf
$ hg githelp -- git log --pickaxe-regex narf
hg grep --diff narf
|