diff options
Diffstat (limited to 'project.py')
-rw-r--r-- | project.py | 25 |
1 files changed, 19 insertions, 6 deletions
@@ -177,11 +177,15 @@ class ReviewableBranch(object): | |||
177 | def UploadForReview(self, people, | 177 | def UploadForReview(self, people, |
178 | auto_topic=False, | 178 | auto_topic=False, |
179 | draft=False, | 179 | draft=False, |
180 | private=False, | ||
181 | wip=False, | ||
180 | dest_branch=None): | 182 | dest_branch=None): |
181 | self.project.UploadForReview(self.name, | 183 | self.project.UploadForReview(self.name, |
182 | people, | 184 | people, |
183 | auto_topic=auto_topic, | 185 | auto_topic=auto_topic, |
184 | draft=draft, | 186 | draft=draft, |
187 | private=private, | ||
188 | wip=wip, | ||
185 | dest_branch=dest_branch) | 189 | dest_branch=dest_branch) |
186 | 190 | ||
187 | def GetPublishedRefs(self): | 191 | def GetPublishedRefs(self): |
@@ -1108,6 +1112,8 @@ class Project(object): | |||
1108 | people=([], []), | 1112 | people=([], []), |
1109 | auto_topic=False, | 1113 | auto_topic=False, |
1110 | draft=False, | 1114 | draft=False, |
1115 | private=False, | ||
1116 | wip=False, | ||
1111 | dest_branch=None): | 1117 | dest_branch=None): |
1112 | """Uploads the named branch for code review. | 1118 | """Uploads the named branch for code review. |
1113 | """ | 1119 | """ |
@@ -1159,9 +1165,14 @@ class Project(object): | |||
1159 | dest_branch) | 1165 | dest_branch) |
1160 | if auto_topic: | 1166 | if auto_topic: |
1161 | ref_spec = ref_spec + '/' + branch.name | 1167 | ref_spec = ref_spec + '/' + branch.name |
1168 | |||
1162 | if not url.startswith('ssh://'): | 1169 | if not url.startswith('ssh://'): |
1163 | rp = ['r=%s' % p for p in people[0]] + \ | 1170 | rp = ['r=%s' % p for p in people[0]] + \ |
1164 | ['cc=%s' % p for p in people[1]] | 1171 | ['cc=%s' % p for p in people[1]] |
1172 | if private: | ||
1173 | rp = rp + ['private'] | ||
1174 | if wip: | ||
1175 | rp = rp + ['wip'] | ||
1165 | if rp: | 1176 | if rp: |
1166 | ref_spec = ref_spec + '%' + ','.join(rp) | 1177 | ref_spec = ref_spec + '%' + ','.join(rp) |
1167 | cmd.append(ref_spec) | 1178 | cmd.append(ref_spec) |
@@ -1275,7 +1286,7 @@ class Project(object): | |||
1275 | 1286 | ||
1276 | need_to_fetch = not (optimized_fetch and | 1287 | need_to_fetch = not (optimized_fetch and |
1277 | (ID_RE.match(self.revisionExpr) and | 1288 | (ID_RE.match(self.revisionExpr) and |
1278 | self._CheckForSha1())) | 1289 | self._CheckForImmutableRevision())) |
1279 | if (need_to_fetch and | 1290 | if (need_to_fetch and |
1280 | not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir, | 1291 | not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir, |
1281 | current_branch_only=current_branch_only, | 1292 | current_branch_only=current_branch_only, |
@@ -1885,7 +1896,7 @@ class Project(object): | |||
1885 | 1896 | ||
1886 | 1897 | ||
1887 | # Direct Git Commands ## | 1898 | # Direct Git Commands ## |
1888 | def _CheckForSha1(self): | 1899 | def _CheckForImmutableRevision(self): |
1889 | try: | 1900 | try: |
1890 | # if revision (sha or tag) is not present then following function | 1901 | # if revision (sha or tag) is not present then following function |
1891 | # throws an error. | 1902 | # throws an error. |
@@ -1939,7 +1950,9 @@ class Project(object): | |||
1939 | tag_name = self.revisionExpr[len(R_TAGS):] | 1950 | tag_name = self.revisionExpr[len(R_TAGS):] |
1940 | 1951 | ||
1941 | if is_sha1 or tag_name is not None: | 1952 | if is_sha1 or tag_name is not None: |
1942 | if self._CheckForSha1(): | 1953 | if self._CheckForImmutableRevision(): |
1954 | print('Skipped fetching project %s (already have persistent ref)' | ||
1955 | % self.name) | ||
1943 | return True | 1956 | return True |
1944 | if is_sha1 and not depth: | 1957 | if is_sha1 and not depth: |
1945 | # When syncing a specific commit and --depth is not set: | 1958 | # When syncing a specific commit and --depth is not set: |
@@ -2095,7 +2108,7 @@ class Project(object): | |||
2095 | # We just synced the upstream given branch; verify we | 2108 | # We just synced the upstream given branch; verify we |
2096 | # got what we wanted, else trigger a second run of all | 2109 | # got what we wanted, else trigger a second run of all |
2097 | # refs. | 2110 | # refs. |
2098 | if not self._CheckForSha1(): | 2111 | if not self._CheckForImmutableRevision(): |
2099 | if current_branch_only and depth: | 2112 | if current_branch_only and depth: |
2100 | # Sync the current branch only with depth set to None | 2113 | # Sync the current branch only with depth set to None |
2101 | return self._RemoteFetch(name=name, | 2114 | return self._RemoteFetch(name=name, |
@@ -2961,14 +2974,14 @@ class MetaProject(Project): | |||
2961 | self.revisionExpr = base | 2974 | self.revisionExpr = base |
2962 | self.revisionId = None | 2975 | self.revisionId = None |
2963 | 2976 | ||
2964 | def MetaBranchSwitch(self): | 2977 | def MetaBranchSwitch(self, submodules=False): |
2965 | """ Prepare MetaProject for manifest branch switch | 2978 | """ Prepare MetaProject for manifest branch switch |
2966 | """ | 2979 | """ |
2967 | 2980 | ||
2968 | # detach and delete manifest branch, allowing a new | 2981 | # detach and delete manifest branch, allowing a new |
2969 | # branch to take over | 2982 | # branch to take over |
2970 | syncbuf = SyncBuffer(self.config, detach_head=True) | 2983 | syncbuf = SyncBuffer(self.config, detach_head=True) |
2971 | self.Sync_LocalHalf(syncbuf) | 2984 | self.Sync_LocalHalf(syncbuf, submodules=submodules) |
2972 | syncbuf.Finish() | 2985 | syncbuf.Finish() |
2973 | 2986 | ||
2974 | return GitCommand(self, | 2987 | return GitCommand(self, |