Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: gclient.py

Issue 564051: Add progress indicator for sync (Closed)
Patch Set: Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | third_party/repo/COPYING » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2010 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 """A wrapper script to manage a set of client modules in different SCM. 6 """A wrapper script to manage a set of client modules in different SCM.
7 7
8 This script is intended to be used to help basic management of client 8 This script is intended to be used to help basic management of client
9 program sources residing in one or more Subversion modules and Git 9 program sources residing in one or more Subversion modules and Git
10 repositories, along with other modules it depends on, also in Subversion or Git, 10 repositories, along with other modules it depends on, also in Subversion or Git,
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 import pprint 65 import pprint
66 import re 66 import re
67 import sys 67 import sys
68 import urlparse 68 import urlparse
69 import urllib 69 import urllib
70 70
71 import breakpad 71 import breakpad
72 72
73 import gclient_scm 73 import gclient_scm
74 import gclient_utils 74 import gclient_utils
75 from third_party.repo.progress import Progress
75 76
76 # default help text 77 # default help text
77 DEFAULT_USAGE_TEXT = ( 78 DEFAULT_USAGE_TEXT = (
78 """usage: %prog <subcommand> [options] [--] [SCM options/args...] 79 """usage: %prog <subcommand> [options] [--] [SCM options/args...]
79 a wrapper for managing a set of svn client modules and/or git repositories. 80 a wrapper for managing a set of svn client modules and/or git repositories.
80 Version """ + __version__ + """ 81 Version """ + __version__ + """
81 82
82 subcommands: 83 subcommands:
83 cleanup 84 cleanup
84 config 85 config
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 deps_content = "" 678 deps_content = ""
678 entries_deps_content[name] = deps_content 679 entries_deps_content[name] = deps_content
679 680
680 # Process the dependencies next (sort alphanumerically to ensure that 681 # Process the dependencies next (sort alphanumerically to ensure that
681 # containing directories get populated first and for readability) 682 # containing directories get populated first and for readability)
682 deps = self._ParseAllDeps(entries, entries_deps_content) 683 deps = self._ParseAllDeps(entries, entries_deps_content)
683 deps_to_process = deps.keys() 684 deps_to_process = deps.keys()
684 deps_to_process.sort() 685 deps_to_process.sort()
685 686
686 # First pass for direct dependencies. 687 # First pass for direct dependencies.
688 if command == 'update' and not self._options.verbose:
689 pm = Progress('Syncing projects', len(deps_to_process))
687 for d in deps_to_process: 690 for d in deps_to_process:
691 if command == 'update' and not self._options.verbose:
692 pm.update()
688 if type(deps[d]) == str: 693 if type(deps[d]) == str:
689 url = deps[d] 694 url = deps[d]
690 entries[d] = url 695 entries[d] = url
691 if run_scm: 696 if run_scm:
692 self._options.revision = revision_overrides.get(d) 697 self._options.revision = revision_overrides.get(d)
693 scm = gclient_scm.CreateSCM(url, self._root_dir, d) 698 scm = gclient_scm.CreateSCM(url, self._root_dir, d)
694 scm.RunCommand(command, self._options, args, file_list) 699 scm.RunCommand(command, self._options, args, file_list)
695 self._options.revision = None 700 self._options.revision = None
701 if command == 'update' and not self._options.verbose:
702 pm.end()
696 703
697 # Second pass for inherited deps (via the From keyword) 704 # Second pass for inherited deps (via the From keyword)
698 for d in deps_to_process: 705 for d in deps_to_process:
699 if type(deps[d]) != str: 706 if type(deps[d]) != str:
700 filename = os.path.join(self._root_dir, 707 filename = os.path.join(self._root_dir,
701 deps[d].module_name, 708 deps[d].module_name,
702 self._options.deps_file) 709 self._options.deps_file)
703 content = gclient_utils.FileRead(filename) 710 content = gclient_utils.FileRead(filename)
704 sub_deps = self._ParseSolutionDeps(deps[d].module_name, content, {}) 711 sub_deps = self._ParseSolutionDeps(deps[d].module_name, content, {})
705 url = sub_deps[d] 712 url = sub_deps[d]
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
1173 1180
1174 if "__main__" == __name__: 1181 if "__main__" == __name__:
1175 try: 1182 try:
1176 result = Main(sys.argv) 1183 result = Main(sys.argv)
1177 except gclient_utils.Error, e: 1184 except gclient_utils.Error, e:
1178 print >> sys.stderr, "Error: %s" % str(e) 1185 print >> sys.stderr, "Error: %s" % str(e)
1179 result = 1 1186 result = 1
1180 sys.exit(result) 1187 sys.exit(result)
1181 1188
1182 # vim: ts=2:sw=2:tw=80:et: 1189 # vim: ts=2:sw=2:tw=80:et:
OLDNEW
« no previous file with comments | « no previous file | third_party/repo/COPYING » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698