问题
How can I update multiple mercurial (hg) repositories from their shared parent's directory?
/plugins/search
/plugins/overview
/plugins/chart
I want to change a branch to default one and update them all at once
cd /plugins/search
hg update -C default
hg pull -u
回答1:
Run the following from the parent directory, plugins in this case:
find . -type d -maxdepth 1 -exec hg update -C default -R {} \;
find . -type d -maxdepth 1 -exec hg pull -u -R {} \;
To clarify:
find .searches the current directory-type dto find directories, not files-maxdepth 1for a maximum depth of one sub-directory-exec {} \;runs a custom command for every findhg update -C default -R {}hg changes branch to default in each repositoryhg pull -u -R {}hg updates to new branch head if changesets were pulled in each repository
回答2:
Finding repositories deeper in the directory tree
find . -type d -iname .hg -exec echo \; -exec hg pull -u -R {}/.. \;
The initial -exec echo \; is only there to keep the output clean.
Click here for more find galore.
来源:https://stackoverflow.com/questions/47434056/run-hg-pull-over-all-subdirectories