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 can extract all files that have been changed in a certain revision.
Is there a way to do it in Mercurial? I don't care if it's done via a GUI or a command line, it's just very convenient to have a set of files that have been changed in a certain changeset.
P.S. I must have put it wrong the first time. I need more than just a list of files, it would be great to have all the files exported to some other folder.
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 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With