diff -r 89e588e5e724 -r 11d20ddca9d8 scm/hg-git-rosetta-stone --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scm/hg-git-rosetta-stone Sun Aug 25 21:04:14 2013 +0200 @@ -0,0 +1,102 @@ +https://github.com/sympy/sympy/wiki/Git-hg-rosetta-stone + +Git hg rosetta stone + +Use it like a dictionary hg -> git. + +Rosetta Stone +============= + + +|hg |git | +|hg cat -r rev |git show rev:some_file | +|some_file | | +|hg clone |git clone git://git.sympy.org/sympy.git | +|http://hg.sympy.org/s| | +|ympy-git.hg | | +|hg clone -U |git clone --bare git://git.sympy.org/sympy.git | +|http://hg.sympy.org/s| | +|ympy-git.hg | | +|hg diff |git diff HEAD | +|hg status |git status | +|hg manifest |git ls-tree -r --name-only --full-tree HEAD | +|hg parents |git show --pretty=format:'%P' -s | +|hg commit |git commit -a | +|hg record |git add -p; git commit # or, for a more detailed | +| |interface: git add -i; git commit | +|hg email -r tip |git send-email HEAD^ # or: git format-patch HEAD^ ; git| +| |send-email 0001-Add-whitespace.patch | +|hg view |gitk, git gui | +|hg help command |git help command | +|~/.hgrc |~/.gitconfig | +|.hg/hgrc |.git/config | +|hg paths |git remote -v | +|editing paths in |git remote add name url # see "git help remote" for | +|.hg/hgrc |more info how to edit paths; alternatively, you can | +| |edit them by hand in .git/config too | +|.hgignore |.gitignore | +|.hg/hgrc [ui] ignore |.git/info/exclude | +|hg add |git add (note, it adds _content_ to index; can work on | +| |a hunk-by-hunk basis with -p!) | +|hg rm |git rm | +|hg push |git push | +|hg pull |git fetch | +|hg pull -u |git pull | +|hg addremove |git add -A (or: git add .; git ls-files --deleted xargs| +| |git rm) | +|hg revert -a |git reset --hard | +|hg revert some_file |git checkout some_file | +|hg strip 2fccd4c |git reset --hard 2fccd4c^ | +|hg export |git format-patch | +|hg import --no-commit|git apply some.patch | +|some.patch | | +|hg import some.patch |git am some.patch | +|hg out |git fetch && git log FETCH_HEAD..master | +|hg in |git fetch && git log master..FETCH_HEAD | +|hg update tip |git checkout HEAD # or this: "git checkout master", or | +| |"git merge FETCH_HEAD", depending on what you did | +| |before this | +|hg update -C |git checkout -f | +|hg update some.branch|git checkout some.branch # Note that "git branch | +| |some.branch" is not the same as this. | +|hg qimport |stg something (A separate patch manager extension is | +| |probably not necessary in git -- normal workflow | +| |combined with git rebase -i should cover your needs) | +|hg qpush |(see hg qimport) | +|hg qpop |(see hg qimport) | +|hg qimport -r tip |? | +|hg qnew -f some.patch|? | +|hg resolve -a -m |git add -u | +|hg glog |git log --graph --all --decorate # or: git log --graph | +| |--all; | +|hg verify |git fsck | + + +Setup +===== + +~/.gitconfig: + + [user] + name = Ondrej Certik + email = ondrej@certik.cz + + [color] + ui = auto + + [color] + decorate = short + + [alias] + ci = commit + di = diff --color-words + st = status + + # aliases that match the hg in / out commands + out = !git fetch && git log FETCH_HEAD.. + outgoing = !git fetch && git log FETCH_HEAD.. + in = !git fetch && git log ..FETCH_HEAD + incoming = !git fetch && git log ..FETCH_HEAD + + +