Run hg pull over all subdirectories

荒凉一梦 提交于 2019-12-01 05:10:54

问题


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 find
  • hg update -C default -R {} hg changes branch to default in each repository
  • hg 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!