Until recently we have been using SVN for all projects of our web studio, and there is a very convenient feature present in several clients like Subversive and TortoiseSVN that
This gives you the list of modified files in revision 4:
hg log -r 4 --template {files}
Update: If you'd like to have one file per line, you may use the style described in Hg book.
Building on Jerome's answer this will get you the copies of the files that changed in revision 4:
hg archive --type files --rev 4 -I $(hg log -r 4 --template {files} | sed 's/ / -I /g') ~/changedfiles
That puts all the files that changed into revision four into a newly created directory named changedfiles in your homedir.
If you change it to:
hg archive --type zip --rev 4 -I $(hg log -r 4 --template {files} | sed 's/ / -I /g') ~/changedfiles.zip
then they show up in a zip archive.
It's worth noting that that only works if you have no spaces in filenames. If you made that blunder then we'll need to use hg status --print0 -r revision -r parent-of-revision
instead, but hopefully that's not necessary.
Note also that the revision number, '4' in our example, shows up twice. The whole thing could very easily be wrapped in a shell script, and that would be parameterized so you don't have to remember to change it in both places.
This command outputs names of all changed files in a specified revision:
hg export revision_num | grep ^diff | cut -f 6 -d ' '
Depending on your ned, there are two command:
To get the changes associated with a particular revision, you can use hg export
:
hg export -r 23
This will generate a diff of all the changes (actually a formatted patch, ready to be applied)
To get the name all the files that were affected, you can use hg log
:
hg log -r 23 -v
This will print the meta-info for the revision, along with the names of the files that were affected.