summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--color.py18
-rw-r--r--project.py19
-rw-r--r--subcmds/info.py2
-rw-r--r--subcmds/sync.py12
4 files changed, 43 insertions, 8 deletions
diff --git a/color.py b/color.py
index d856313f..7970198a 100644
--- a/color.py
+++ b/color.py
@@ -126,6 +126,13 @@ class Coloring(object):
126 s._out.write(c(fmt, *args)) 126 s._out.write(c(fmt, *args))
127 return f 127 return f
128 128
129 def nofmt_printer(self, opt=None, fg=None, bg=None, attr=None):
130 s = self
131 c = self.nofmt_colorer(opt, fg, bg, attr)
132 def f(fmt):
133 s._out.write(c(fmt))
134 return f
135
129 def colorer(self, opt=None, fg=None, bg=None, attr=None): 136 def colorer(self, opt=None, fg=None, bg=None, attr=None):
130 if self._on: 137 if self._on:
131 c = self._parse(opt, fg, bg, attr) 138 c = self._parse(opt, fg, bg, attr)
@@ -138,6 +145,17 @@ class Coloring(object):
138 return fmt % args 145 return fmt % args
139 return f 146 return f
140 147
148 def nofmt_colorer(self, opt=None, fg=None, bg=None, attr=None):
149 if self._on:
150 c = self._parse(opt, fg, bg, attr)
151 def f(fmt):
152 return ''.join([c, fmt, RESET])
153 return f
154 else:
155 def f(fmt):
156 return fmt
157 return f
158
141 def _parse(self, opt, fg, bg, attr): 159 def _parse(self, opt, fg, bg, attr):
142 if not opt: 160 if not opt:
143 return _Color(fg, bg, attr) 161 return _Color(fg, bg, attr)
diff --git a/project.py b/project.py
index ba7898ed..22e4a5d6 100644
--- a/project.py
+++ b/project.py
@@ -946,6 +946,11 @@ class Project(object):
946 dest_branch) 946 dest_branch)
947 if auto_topic: 947 if auto_topic:
948 ref_spec = ref_spec + '/' + branch.name 948 ref_spec = ref_spec + '/' + branch.name
949 if not url.startswith('ssh://'):
950 rp = ['r=%s' % p for p in people[0]] + \
951 ['cc=%s' % p for p in people[1]]
952 if rp:
953 ref_spec = ref_spec + '%' + ','.join(rp)
949 cmd.append(ref_spec) 954 cmd.append(ref_spec)
950 955
951 if GitCommand(self, cmd, bare = True).Wait() != 0: 956 if GitCommand(self, cmd, bare = True).Wait() != 0:
@@ -963,7 +968,8 @@ class Project(object):
963 quiet=False, 968 quiet=False,
964 is_new=None, 969 is_new=None,
965 current_branch_only=False, 970 current_branch_only=False,
966 clone_bundle=True): 971 clone_bundle=True,
972 no_tags=False):
967 """Perform only the network IO portion of the sync process. 973 """Perform only the network IO portion of the sync process.
968 Local working directory/branch state is not affected. 974 Local working directory/branch state is not affected.
969 """ 975 """
@@ -1001,7 +1007,8 @@ class Project(object):
1001 current_branch_only = True 1007 current_branch_only = True
1002 1008
1003 if not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir, 1009 if not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir,
1004 current_branch_only=current_branch_only): 1010 current_branch_only=current_branch_only,
1011 no_tags=no_tags):
1005 return False 1012 return False
1006 1013
1007 if self.worktree: 1014 if self.worktree:
@@ -1551,7 +1558,8 @@ class Project(object):
1551 current_branch_only=False, 1558 current_branch_only=False,
1552 initial=False, 1559 initial=False,
1553 quiet=False, 1560 quiet=False,
1554 alt_dir=None): 1561 alt_dir=None,
1562 no_tags=False):
1555 1563
1556 is_sha1 = False 1564 is_sha1 = False
1557 tag_name = None 1565 tag_name = None
@@ -1644,7 +1652,10 @@ class Project(object):
1644 1652
1645 if not current_branch_only: 1653 if not current_branch_only:
1646 # Fetch whole repo 1654 # Fetch whole repo
1647 cmd.append('--tags') 1655 if no_tags:
1656 cmd.append('--no-tags')
1657 else:
1658 cmd.append('--tags')
1648 cmd.append((u'+refs/heads/*:') + remote.ToLocal('refs/heads/*')) 1659 cmd.append((u'+refs/heads/*:') + remote.ToLocal('refs/heads/*'))
1649 elif tag_name is not None: 1660 elif tag_name is not None:
1650 cmd.append('tag') 1661 cmd.append('tag')
diff --git a/subcmds/info.py b/subcmds/info.py
index a6eba889..8fb363f3 100644
--- a/subcmds/info.py
+++ b/subcmds/info.py
@@ -48,7 +48,7 @@ class Info(PagedCommand):
48 self.headtext = self.out.printer('headtext', fg = 'yellow') 48 self.headtext = self.out.printer('headtext', fg = 'yellow')
49 self.redtext = self.out.printer('redtext', fg = 'red') 49 self.redtext = self.out.printer('redtext', fg = 'red')
50 self.sha = self.out.printer("sha", fg = 'yellow') 50 self.sha = self.out.printer("sha", fg = 'yellow')
51 self.text = self.out.printer('text') 51 self.text = self.out.nofmt_printer('text')
52 self.dimtext = self.out.printer('dimtext', attr = 'dim') 52 self.dimtext = self.out.printer('dimtext', attr = 'dim')
53 53
54 self.opt = opt 54 self.opt = opt
diff --git a/subcmds/sync.py b/subcmds/sync.py
index 228a279a..5c369a74 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -189,6 +189,9 @@ later is required to fix a server side protocol bug.
189 p.add_option('--fetch-submodules', 189 p.add_option('--fetch-submodules',
190 dest='fetch_submodules', action='store_true', 190 dest='fetch_submodules', action='store_true',
191 help='fetch submodules from server') 191 help='fetch submodules from server')
192 p.add_option('--no-tags',
193 dest='no_tags', action='store_true',
194 help="don't fetch tags")
192 if show_smart: 195 if show_smart:
193 p.add_option('-s', '--smart-sync', 196 p.add_option('-s', '--smart-sync',
194 dest='smart_sync', action='store_true', 197 dest='smart_sync', action='store_true',
@@ -235,7 +238,8 @@ later is required to fix a server side protocol bug.
235 success = project.Sync_NetworkHalf( 238 success = project.Sync_NetworkHalf(
236 quiet=opt.quiet, 239 quiet=opt.quiet,
237 current_branch_only=opt.current_branch_only, 240 current_branch_only=opt.current_branch_only,
238 clone_bundle=not opt.no_clone_bundle) 241 clone_bundle=not opt.no_clone_bundle,
242 no_tags=opt.no_tags)
239 self._fetch_times.Set(project, time.time() - start) 243 self._fetch_times.Set(project, time.time() - start)
240 244
241 # Lock around all the rest of the code, since printing, updating a set 245 # Lock around all the rest of the code, since printing, updating a set
@@ -273,7 +277,8 @@ later is required to fix a server side protocol bug.
273 if project.Sync_NetworkHalf( 277 if project.Sync_NetworkHalf(
274 quiet=opt.quiet, 278 quiet=opt.quiet,
275 current_branch_only=opt.current_branch_only, 279 current_branch_only=opt.current_branch_only,
276 clone_bundle=not opt.no_clone_bundle): 280 clone_bundle=not opt.no_clone_bundle,
281 no_tags=opt.no_tags):
277 fetched.add(project.gitdir) 282 fetched.add(project.gitdir)
278 else: 283 else:
279 print('error: Cannot fetch %s' % project.name, file=sys.stderr) 284 print('error: Cannot fetch %s' % project.name, file=sys.stderr)
@@ -558,7 +563,8 @@ later is required to fix a server side protocol bug.
558 563
559 if not opt.local_only: 564 if not opt.local_only:
560 mp.Sync_NetworkHalf(quiet=opt.quiet, 565 mp.Sync_NetworkHalf(quiet=opt.quiet,
561 current_branch_only=opt.current_branch_only) 566 current_branch_only=opt.current_branch_only,
567 no_tags=opt.no_tags)
562 568
563 if mp.HasChanges: 569 if mp.HasChanges:
564 syncbuf = SyncBuffer(mp.config) 570 syncbuf = SyncBuffer(mp.config)