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.
This command outputs names of all changed files in a specified revision:
Building on Jerome's answer this will get you the copies of the files that changed in revision 4:
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:
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:
Update: If you'd like to have one file per line, you may use the style described in Hg book.
Depending on your ned, there are two command:
To get the changes associated with a particular revision, you can use
hg export
: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
:This will print the meta-info for the revision, along with the names of the files that were affected.