Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- STASH_NAME="stash-$(date +'%d-%m-%y-%H-%M-%S')"
- STASH_PATCH=$STASH_NAME.dpatch
- mkdir repo
- cd repo
- darcs init
- echo testing > file
- darcs add file
- darcs record -a -m 'Add file'
- echo -e "with\nsome\nlines" >> file
- darcs wh # unique prefixes are allowed in darcs - wh(atsnew)
- # Let's stash!
- darcs rec -am $STASH_NAME
- # In recent darcs (>2.5 I think), you can say this:
- darcs obliterate --last 1 -a -o $STASH_PATCH
- # -o creates a dpatch in current dir with given name, and -a says accept "all"
- # chosen patches
- # To get back to our old state:
- darcs apply $STASH_PATCH
- darcs unrecord --last 1 -a
- rm $STASH_PATCH
- ########### NEWER DARCS (> 2.5) GO NO FURTHER! ###########
- # For older darcs without -o option to obliterate:
- # First, get back to our full recorded state of two patches
- darcs rec -am $STASH_NAME
- # Need to do some juggling to generate the dpatch file, by setting up a target
- # repo to "darcs send" to.
- cd ..
- mkdir send-target
- cd send-target
- darcs init
- darcs pull ../repo -p 'Add file' -a
- cd ../repo
- # Now, we can "send" our patch to the new repo, and output into a file.
- darcs send -a -o $STASH_PATCH --no-edit ../send-target
- darcs ob --last 1 -a
- # Again, to get back where we were
- darcs apply $STASH_PATCH
- darcs unrecord --last 1 -a
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement