OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 # | 5 # |
6 # Wrapper script around Rietveld's upload.py that groups files into | 6 # Wrapper script around Rietveld's upload.py that groups files into |
7 # changelists. | 7 # changelists. |
8 | 8 |
9 import getpass | 9 import getpass |
10 import os | 10 import os |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 local_dir = os.path.dirname(os.path.abspath(filename)) | 148 local_dir = os.path.dirname(os.path.abspath(filename)) |
149 local_base = os.path.basename(filename) | 149 local_base = os.path.basename(filename) |
150 dir_info = gclient_scm.CaptureSVNInfo(".") | 150 dir_info = gclient_scm.CaptureSVNInfo(".") |
151 repo_root = dir_info["Repository Root"] | 151 repo_root = dir_info["Repository Root"] |
152 if use_root: | 152 if use_root: |
153 url_path = repo_root | 153 url_path = repo_root |
154 else: | 154 else: |
155 url_path = dir_info["URL"] | 155 url_path = dir_info["URL"] |
156 content = "" | 156 content = "" |
157 while True: | 157 while True: |
158 # First, look for a locally modified version of the file. | 158 # First, look for a locally modified version of the file if we can. |
159 local_path = os.path.join(local_dir, local_base) | 159 r = "" |
160 r = gclient_scm.CaptureSVNStatus((local_path,)) | 160 if not use_root: |
| 161 local_path = os.path.join(local_dir, local_base) |
| 162 r = gclient_scm.CaptureSVNStatus((local_path,)) |
161 rc = -1 | 163 rc = -1 |
162 if r: | 164 if r: |
163 (status, file) = r[0] | 165 (status, file) = r[0] |
164 rc = 0 | 166 rc = 0 |
165 if not rc and status[0] in ('A','M'): | 167 if not rc and status[0] in ('A','M'): |
166 content = ReadFile(local_path) | 168 content = ReadFile(local_path) |
167 rc = 0 | 169 rc = 0 |
168 else: | 170 else: |
169 # Then look in the repository. | 171 # Look in the repository if we didn't find something local. |
170 svn_path = url_path + "/" + filename | 172 svn_path = url_path + "/" + filename |
171 content, rc = RunShellWithReturnCode(["svn", "cat", svn_path]) | 173 content, rc = RunShellWithReturnCode(["svn", "cat", svn_path]) |
172 | 174 |
173 if not rc: | 175 if not rc: |
174 # Exit the loop if the file was found. Override content. | 176 # Exit the loop if the file was found. Override content. |
175 break | 177 break |
176 # Make sure to mark settings as empty if not found. | 178 # Make sure to mark settings as empty if not found. |
177 content = "" | 179 content = "" |
178 if url_path == repo_root: | 180 if url_path == repo_root: |
179 # Reached the root. Abandoning search. | 181 # Reached the root. Abandoning search. |
(...skipping 1105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1285 # the files. This allows commands such as 'gcl diff xxx' to work. | 1287 # the files. This allows commands such as 'gcl diff xxx' to work. |
1286 args =["svn", command] | 1288 args =["svn", command] |
1287 root = GetRepositoryRoot() | 1289 root = GetRepositoryRoot() |
1288 args.extend([os.path.join(root, x) for x in change_info.GetFileNames()]) | 1290 args.extend([os.path.join(root, x) for x in change_info.GetFileNames()]) |
1289 RunShell(args, True) | 1291 RunShell(args, True) |
1290 return 0 | 1292 return 0 |
1291 | 1293 |
1292 | 1294 |
1293 if __name__ == "__main__": | 1295 if __name__ == "__main__": |
1294 sys.exit(main()) | 1296 sys.exit(main()) |
OLD | NEW |