diff options
| author | David Holmer <odinguru@gmail.com> | 2012-11-14 19:19:00 -0500 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-04-03 22:27:45 +0000 |
| commit | 0a1c6a1c16e2c89f98158cb2f79dda1583a8fac4 (patch) | |
| tree | 2446c673c4eddf2a499e36b4e898ea258a6d3c7a | |
| parent | 33e045673786f3477e805ade0f337de08e89a7a8 (diff) | |
| download | git-repo-0a1c6a1c16e2c89f98158cb2f79dda1583a8fac4.tar.gz | |
Special handling for manifest group "default"
Change Details:
* Make "default" a special manifest group that matches any project that
does not have the special project group "notdefault"
* Use "default" instead of "all,-notdefault" when user does not specify
manifest group
* Expand -g option help to include example usage of manifest groups
Change Benefits:
* Allow a more intuitive and expressive manifest groups specification:
* "default" instead of "all,-notdefault"
* "default,foo" instead of "all,-notdefault,foo"
* "default,-foo" instead of "all,-notdefault,-foo"
* "foo,-default" which has no equivalent
* Default manifest groups behavior can be restored by the command
'repo init -g default'. This is significantly more intuitive than the
current equivalent command 'repo init -g all,-notdefault'.
Change-Id: I6d0673791d64a650110a917c248bcebb23b279d3
| -rw-r--r-- | command.py | 2 | ||||
| -rw-r--r-- | project.py | 7 | ||||
| -rwxr-xr-x | repo | 3 | ||||
| -rw-r--r-- | subcmds/init.py | 7 |
4 files changed, 13 insertions, 6 deletions
| @@ -136,7 +136,7 @@ class Command(object): | |||
| 136 | 136 | ||
| 137 | groups = mp.config.GetString('manifest.groups') | 137 | groups = mp.config.GetString('manifest.groups') |
| 138 | if not groups: | 138 | if not groups: |
| 139 | groups = 'all,-notdefault,platform-' + platform.system().lower() | 139 | groups = 'default,platform-' + platform.system().lower() |
| 140 | groups = [x for x in re.split(r'[,\s]+', groups) if x] | 140 | groups = [x for x in re.split(r'[,\s]+', groups) if x] |
| 141 | 141 | ||
| 142 | if not args: | 142 | if not args: |
| @@ -672,9 +672,14 @@ class Project(object): | |||
| 672 | project_groups: "all,group1,group2" | 672 | project_groups: "all,group1,group2" |
| 673 | manifest_groups: "-group1,group2" | 673 | manifest_groups: "-group1,group2" |
| 674 | the project will be matched. | 674 | the project will be matched. |
| 675 | |||
| 676 | The special manifest group "default" will match any project that | ||
| 677 | does not have the special project group "notdefault" | ||
| 675 | """ | 678 | """ |
| 676 | expanded_manifest_groups = manifest_groups or ['all', '-notdefault'] | 679 | expanded_manifest_groups = manifest_groups or ['default'] |
| 677 | expanded_project_groups = ['all'] + (self.groups or []) | 680 | expanded_project_groups = ['all'] + (self.groups or []) |
| 681 | if not 'notdefault' in expanded_project_groups: | ||
| 682 | expanded_project_groups += ['default'] | ||
| 678 | 683 | ||
| 679 | matched = False | 684 | matched = False |
| 680 | for group in expanded_manifest_groups: | 685 | for group in expanded_manifest_groups: |
| @@ -164,7 +164,8 @@ group.add_option('--depth', type='int', default=None, | |||
| 164 | help='create a shallow clone with given depth; see git clone') | 164 | help='create a shallow clone with given depth; see git clone') |
| 165 | group.add_option('-g', '--groups', | 165 | group.add_option('-g', '--groups', |
| 166 | dest='groups', default='default', | 166 | dest='groups', default='default', |
| 167 | help='restrict manifest projects to ones with a specified group', | 167 | help='restrict manifest projects to ones with specified ' |
| 168 | 'group(s) [default|all|G1,G2,G3|G4,-G5,-G6]', | ||
| 168 | metavar='GROUP') | 169 | metavar='GROUP') |
| 169 | group.add_option('-p', '--platform', | 170 | group.add_option('-p', '--platform', |
| 170 | dest='platform', default="auto", | 171 | dest='platform', default="auto", |
diff --git a/subcmds/init.py b/subcmds/init.py index 11312601..29730cc4 100644 --- a/subcmds/init.py +++ b/subcmds/init.py | |||
| @@ -91,8 +91,9 @@ to update the working directory files. | |||
| 91 | dest='depth', | 91 | dest='depth', |
| 92 | help='create a shallow clone with given depth; see git clone') | 92 | help='create a shallow clone with given depth; see git clone') |
| 93 | g.add_option('-g', '--groups', | 93 | g.add_option('-g', '--groups', |
| 94 | dest='groups', default='all,-notdefault', | 94 | dest='groups', default='default', |
| 95 | help='restrict manifest projects to ones with a specified group', | 95 | help='restrict manifest projects to ones with specified ' |
| 96 | 'group(s) [default|all|G1,G2,G3|G4,-G5,-G6]', | ||
| 96 | metavar='GROUP') | 97 | metavar='GROUP') |
| 97 | g.add_option('-p', '--platform', | 98 | g.add_option('-p', '--platform', |
| 98 | dest='platform', default='auto', | 99 | dest='platform', default='auto', |
| @@ -169,7 +170,7 @@ to update the working directory files. | |||
| 169 | 170 | ||
| 170 | groups = [x for x in groups if x] | 171 | groups = [x for x in groups if x] |
| 171 | groupstr = ','.join(groups) | 172 | groupstr = ','.join(groups) |
| 172 | if opt.platform == 'auto' and groupstr == 'all,-notdefault,platform-' + platform.system().lower(): | 173 | if opt.platform == 'auto' and groupstr == 'default,platform-' + platform.system().lower(): |
| 173 | groupstr = None | 174 | groupstr = None |
| 174 | m.config.SetString('manifest.groups', groupstr) | 175 | m.config.SetString('manifest.groups', groupstr) |
| 175 | 176 | ||
