Merge lp:~niemeyer/lbox/diff-post-prereq-merge into lp:lbox

Proposed by Gustavo Niemeyer
Status: Merged
Merged at revision: 49
Proposed branch: lp:~niemeyer/lbox/diff-post-prereq-merge
Merge into: lp:lbox
Prerequisite: lp:~niemeyer/lbox/long-summary
Diff against target: 98 lines (+33/-19)
3 files modified
launchpad.go (+22/-0)
propose.go (+8/-4)
submit.go (+3/-15)
To merge this branch: bzr merge lp:~niemeyer/lbox/diff-post-prereq-merge
Reviewer Review Type Date Requested Status
Gustavo Niemeyer Pending
Review via email: mp+111105@code.launchpad.net

Description of the change

propose: fix diffing post prereq merge

To post a comment you must log in.
Revision history for this message
Gustavo Niemeyer (niemeyer) wrote :

Please take a look.

Revision history for this message
Gustavo Niemeyer (niemeyer) wrote :

*** Submitted:

propose: fix diffing post prereq merge

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'launchpad.go'
2--- launchpad.go 2012-03-14 18:15:53 +0000
3+++ launchpad.go 2012-06-19 21:07:20 +0000
4@@ -253,6 +253,28 @@
5 return mp, nil
6 }
7
8+func isMerged(source *lpad.Branch) (merged bool, mp *lpad.MergeProposal, err error) {
9+ mps, err := source.LandingTargets()
10+ if failed(err) {
11+ return
12+ }
13+ found := errors.New("marker")
14+ err = mps.For(func(proposal *lpad.MergeProposal) error {
15+ if proposal.Status() == lpad.StMerged {
16+ mp = proposal
17+ return found
18+ }
19+ return nil
20+ })
21+ switch err {
22+ case nil:
23+ return false, mp, nil
24+ case found:
25+ return true, mp, nil
26+ }
27+ return false, nil, err
28+}
29+
30 func setProposalLog(mp *lpad.MergeProposal, log *Log) error {
31 logf("Updating merge proposal log...")
32 desc := fmt.Sprintf("%s\n\n%s", log.Summary, log.Description)
33
34=== modified file 'propose.go'
35--- propose.go 2012-06-19 20:04:41 +0000
36+++ propose.go 2012-06-19 21:07:20 +0000
37@@ -253,11 +253,15 @@
38
39 gotBug := make(chan bool, 1)
40
41- var diffBaseInfo *BranchInfo
42+ diffBaseInfo := targetInfo
43 if prereq != nil {
44- diffBaseInfo = &BranchInfo{URL: prereq.Id()}
45- } else {
46- diffBaseInfo = targetInfo
47+ merged, _, err := isMerged(prereq)
48+ if failed(err) {
49+ return
50+ }
51+ if !merged {
52+ diffBaseInfo = &BranchInfo{URL: prereq.Id()}
53+ }
54 }
55
56 wg.Add(1)
57
58=== modified file 'submit.go'
59--- submit.go 2012-06-19 20:05:44 +0000
60+++ submit.go 2012-06-19 21:07:20 +0000
61@@ -1,7 +1,6 @@
62 package main
63
64 import (
65- "errors"
66 "flag"
67 "fmt"
68 "launchpad.net/goetveld/rietveld"
69@@ -65,26 +64,15 @@
70 var mpreq *lpad.MergeProposal
71 if prereq != nil {
72 // Can only submit if pre-req is already merged.
73- mps, err := prereq.LandingTargets()
74+ var merged bool
75+ merged, mpreq, err = isMerged(prereq)
76 if failed(err) {
77 return
78 }
79- found := errors.New("marker")
80- err = mps.For(func(mp *lpad.MergeProposal) error {
81- if mp.Status() == lpad.StMerged {
82- mpreq = mp
83- return found
84- }
85- return nil
86- })
87- if err == nil {
88+ if !merged {
89 failed(fmt.Errorf("Pre-requisite %s not yet merged.", prereq.Id()))
90 return
91 }
92- if err != found {
93- failed(err)
94- return
95- }
96 }
97
98 // --- Edit change log ---

Subscribers

People subscribed via source and target branches

to all changes: