问题
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 d
to find directories, not files-maxdepth 1
for 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