File tree 3 files changed +57
-3
lines changed
3 files changed +57
-3
lines changed Original file line number Diff line number Diff line change @@ -74,14 +74,17 @@ func cmdUndo1(modules []string) error {
74
74
prevReplace := splitWasComment (comments .Suffix [0 ].Token )
75
75
if prevReplace != nil && prevReplace .Old .Path == r .Old .Path {
76
76
// We're popping the old replace statement.
77
- if ! r .Syntax .InBlock {
78
- // When we're not in a block, we don't need the "replace" token.
77
+ if r .Syntax .InBlock {
78
+ // When we're in a block, we don't need the "replace" token.
79
79
prevReplace .Syntax .Token = prevReplace .Syntax .Token [1 :]
80
80
}
81
81
// Preserve any before and after comments.
82
82
prevReplace .Syntax .Before = r .Syntax .Before
83
83
prevReplace .Syntax .After = r .Syntax .After
84
- * r = * prevReplace
84
+ r .Old = prevReplace .Old
85
+ r .New = prevReplace .New
86
+ r .Syntax .Comments .Suffix = prevReplace .Syntax .Comments .Suffix
87
+ r .Syntax .Token = prevReplace .Syntax .Token
85
88
} else {
86
89
// It's not a "was" comment. Just remove it (after this loop so we don't
87
90
// interfere with the current range statement).
Original file line number Diff line number Diff line change
1
+ cd repo
2
+ gohack undo
3
+ stdout 'dropped gopkg.in/errgo.v2'
4
+
5
+ grep '^\tgopkg.in/errgo.v2 => github.com/rogpeppe/test2/arble v0.0.0-20181008213029-f6022c873160$' go.mod
6
+
7
+ -- repo/main.go --
8
+ package main
9
+ import _ "gopkg.in/errgo.v2"
10
+
11
+ -- repo/go.mod --
12
+ module example.com/repo
13
+
14
+ require (
15
+ gopkg.in/errgo.v2 v2.1.0
16
+ rsc.io/sampler v1.3.0
17
+ )
18
+
19
+ replace (
20
+ rsc.io/sampler v1.3.0 => rsc.io/sampler v1.2.1
21
+ gopkg.in/errgo.v2 => ../foo // was gopkg.in/errgo.v2 => github.com/rogpeppe/test2/arble v0.0.0-20181008213029-f6022c873160
22
+ )
23
+
24
+ -- foo/foo.go --
25
+ package foo
26
+
27
+ -- foo/go.mod --
28
+ module example.com/foo
29
+
Original file line number Diff line number Diff line change
1
+ cd repo
2
+ gohack undo
3
+ stdout 'dropped gopkg.in/errgo.v2'
4
+
5
+ grep '^replace gopkg.in/errgo.v2 => github.com/rogpeppe/test2/arble v0.0.0-20181008213029-f6022c873160$' go.mod
6
+
7
+ -- repo/main.go --
8
+ package main
9
+ import _ "gopkg.in/errgo.v2"
10
+
11
+ -- repo/go.mod --
12
+ module example.com/repo
13
+
14
+ require gopkg.in/errgo.v2 v2.1.0
15
+
16
+ replace gopkg.in/errgo.v2 => ../foo // was gopkg.in/errgo.v2 => github.com/rogpeppe/test2/arble v0.0.0-20181008213029-f6022c873160
17
+
18
+ -- foo/foo.go --
19
+ package foo
20
+
21
+ -- foo/go.mod --
22
+ module example.com/foo
You can’t perform that action at this time.
0 commit comments