@@ -277,7 +277,7 @@ def PendingText(self, quick=False):
277
277
s += "\t Author: " + cl .copied_from + "\n "
278
278
if not quick :
279
279
s += "\t Reviewer: " + JoinComma (cl .reviewer ) + "\n "
280
- for (who , line ) in cl .lgtm :
280
+ for (who , line , _ ) in cl .lgtm :
281
281
s += "\t \t " + who + ": " + line + "\n "
282
282
s += "\t CC: " + JoinComma (cl .cc ) + "\n "
283
283
s += "\t Files:\n "
@@ -493,9 +493,15 @@ def CutDomain(s):
493
493
return s
494
494
495
495
def JoinComma (l ):
496
+ seen = {}
497
+ uniq = []
496
498
for s in l :
497
499
typecheck (s , str )
498
- return ", " .join (l )
500
+ if s not in seen :
501
+ seen [s ] = True
502
+ uniq .append (s )
503
+
504
+ return ", " .join (uniq )
499
505
500
506
def ExceptionDetail ():
501
507
s = str (sys .exc_info ()[0 ])
@@ -556,7 +562,7 @@ def LoadCL(ui, repo, name, web=True):
556
562
if m .get ('approval' , False ) == True or m .get ('disapproval' , False ) == True :
557
563
who = re .sub ('@.*' , '' , m .get ('sender' , '' ))
558
564
text = re .sub ("\n (.|\n )*" , '' , m .get ('text' , '' ))
559
- cl .lgtm .append ((who , text ))
565
+ cl .lgtm .append ((who , text , m . get ( 'approval' , False ) ))
560
566
561
567
set_status ("loaded CL " + name )
562
568
return cl , ''
@@ -1928,12 +1934,21 @@ def submit(ui, repo, *pats, **opts):
1928
1934
typecheck (userline , str )
1929
1935
1930
1936
about = ""
1931
- if cl .reviewer :
1932
- about += "R=" + JoinComma ([CutDomain (s ) for s in cl .reviewer ]) + "\n "
1937
+
1938
+ if not cl .lgtm and not opts .get ('tbr' ):
1939
+ raise hg_util .Abort ("this CL has not been LGTM'ed" )
1940
+ if cl .lgtm :
1941
+ about += "LGTM=" + JoinComma ([CutDomain (who ) for (who , line , approval ) in cl .lgtm if approval ]) + "\n "
1942
+ reviewer = cl .reviewer
1933
1943
if opts .get ('tbr' ):
1934
1944
tbr = SplitCommaSpace (opts .get ('tbr' ))
1945
+ for name in tbr :
1946
+ if name .startswith ('golang-' ):
1947
+ raise hg_util .Abort ("--tbr requires a person, not a mailing list" )
1935
1948
cl .reviewer = Add (cl .reviewer , tbr )
1936
1949
about += "TBR=" + JoinComma ([CutDomain (s ) for s in tbr ]) + "\n "
1950
+ if reviewer :
1951
+ about += "R=" + JoinComma ([CutDomain (s ) for s in reviewer ]) + "\n "
1937
1952
if cl .cc :
1938
1953
about += "CC=" + JoinComma ([CutDomain (s ) for s in cl .cc ]) + "\n "
1939
1954
0 commit comments