1127
Comment: improve clean copy for a tagged release
|
2413
provide some cue as to what was expected to have been merged...
|
Deletions are marked like this. | Additions are marked like this. |
Line 28: | Line 28: |
=== See diffstat of pulled changes === Place the following script (named "pull-diffstat" here) somewhere in your $PATH: {{{ #!/bin/sh test -n "$NODE" || exit 0 PARENT=`hg parents $NODE | head -1 | awk -F':' '{print $3}'` TIP=`hg tip | head -1 | awk -F':' '{print $3}'` echo "diffstat for $PARENT to $TIP" hg diff -r $PARENT -r tip | diffstat }}} Add a changegroup entry to the [hooks] section of hgrc: {{{ [hooks] changegroup = pull-diffstat }}} Now you will see a diffstat of the new changes to your repo every time you do "hg pull". === A script to use the OS X FileMerge application to perform merges === {{{ #!/bin/sh LOCAL=$1 BASE=$2 OTHER=$3 # Attempt to do a non-interactive merge cp $LOCAL $LOCAL.orig if merge $LOCAL $BASE $OTHER 2> /dev/null; then # success! rm $LOCAL.orig exit 0 fi cp $LOCAL.orig $LOCAL # opendiff "succeeds" as long as FileMerge launches. No way to tell if the # merge is any good but to ask... opendiff "$OTHER" "$LOCAL" -ancestor "$BASE" -merge "$LOCAL" echo "Merge of $LOCAL successful?" select answer in yes no do if test "$answer" == "yes" then rm $LOCAL.orig exit 0 elif test "$answer" == "no" then exit 1 fi done echo "filemerge: failed" exit 1 }}} |
Make a clean copy of a source tree, like CVS export
hg clone source export rm -rf export/.hg
The same thing, but for a tagged release
hg clone --noupdate source export-tagged cd export-tagged hg update mytag rm -rf .hg
See diffs when editing commit message with VIM
Make a private copy of the 'hgeditor' script provided with mercurial and replace the call to the editor with following command:
vim "+e $HGTMP/diff" '+set buftype=help filetype=diff' "+vsplit $HGTMP/msg" || exit $?
This will start up VIM in vertical split mode with commit message in the left pane and diff in the right pane. The buftype=help setting for diff window tells vim to exit when all other windows are closed, so when you write and quit the log with :x (:wq - they are equivalent), vim exits. If you have syntax highlight set up, the diff will be properly highlighted.
This setting is suitable for wide terminals. If you have a narrow terminal, you may want to replace the +vsplit above with +split or add nowrap to the +set.
See diffstat of pulled changes
Place the following script (named "pull-diffstat" here) somewhere in your $PATH:
test -n "$NODE" || exit 0 PARENT=`hg parents $NODE | head -1 | awk -F':' '{print $3}'` TIP=`hg tip | head -1 | awk -F':' '{print $3}'` echo "diffstat for $PARENT to $TIP" hg diff -r $PARENT -r tip | diffstat
Add a changegroup entry to the [hooks] section of hgrc:
[hooks] changegroup = pull-diffstat
Now you will see a diffstat of the new changes to your repo every time you do "hg pull".
A script to use the OS X FileMerge application to perform merges
LOCAL=$1 BASE=$2 OTHER=$3 # Attempt to do a non-interactive merge cp $LOCAL $LOCAL.orig if merge $LOCAL $BASE $OTHER 2> /dev/null; then # success! rm $LOCAL.orig exit 0 fi cp $LOCAL.orig $LOCAL # opendiff "succeeds" as long as FileMerge launches. No way to tell if the # merge is any good but to ask... opendiff "$OTHER" "$LOCAL" -ancestor "$BASE" -merge "$LOCAL" echo "Merge of $LOCAL successful?" select answer in yes no do if test "$answer" == "yes" then rm $LOCAL.orig exit 0 elif test "$answer" == "no" then exit 1 fi done echo "filemerge: failed" exit 1