handle hg cd git env GIT_AUTHOR_NAME='Russ Cox' env GIT_AUTHOR_EMAIL='rsc@golang.org' env GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME env GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL git init # 0 at 2018-02-19T17:21:09-05:00 git add LICENSE README.md git commit -m 'initial commit' git branch -m master # 1 git branch mybranch git checkout mybranch at 2018-02-19T18:10:06-05:00 mkdir pkg echo 'package p // pkg/p.go' cp stdout pkg/p.go git add pkg/p.go git commit -m 'add pkg/p.go' git tag v0.0.0 git tag v1.0.0 git tag v2.0.0 git tag mytag git branch v1 git branch v2 git checkout v2 # 2 at 2018-02-19T18:14:23-05:00 mkdir v2 echo 'module "github.com/rsc/vgotest1/v2" // root go.mod' cp stdout go.mod git add go.mod git commit -m 'go.mod v2' git tag v2.0.1 # 3 at 2018-02-19T18:15:11-05:00 mkdir submod/pkg echo 'package p // submod/pkg/p.go' cp stdout submod/pkg/p.go git add submod/pkg/p.go git commit -m 'submod/pkg/p.go' git tag v2.0.2 # 4 at 2018-02-19T18:16:04-05:00 echo 'module "github.com/rsc/vgotest" // v2/go.mod' cp stdout v2/go.mod git add v2/go.mod git commit -m 'v2/go.mod: bad go.mod (no version)' git tag v2.0.3 # 5 at 2018-02-19T19:03:38-05:00 env GIT_AUTHOR_DATE=2018-02-19T18:16:38-05:00 echo 'module "github.com/rsc/vgotest1/v2" // v2/go.mod' cp stdout v2/go.mod git add v2/go.mod git commit -m 'v2/go.mod: fix' git tag v2.0.4 # 6 at 2018-02-19T19:03:59-05:00 env GIT_AUTHOR_DATE=2018-02-19T18:17:02-05:00 echo 'module "github.com/rsc/vgotest1" // root go.mod' cp stdout go.mod git add go.mod git commit -m 'go.mod: drop v2' git tag v2.0.5 git checkout v1 # 7 at 2018-02-19T18:10:28-05:00 echo 'module "github.com/rsc/vgotest1" // root go.mod' cp stdout go.mod git add go.mod git commit -m 'go.mod' git tag v0.0.1 git tag v1.0.1 # 8 at 2018-02-19T18:11:28-05:00 mkdir submod/pkg echo 'package pkg // submod/pkg/p.go' cp stdout submod/pkg/p.go git add submod git commit -m 'submod/pkg/p.go' git tag v1.0.2 # 9 at 2018-02-19T18:12:07-05:00 echo 'module "github.com/vgotest1/submod" // submod/go.mod' cp stdout submod/go.mod git add submod/go.mod git commit -m 'submod/go.mod' git tag v1.0.3 git tag submod/v1.0.4 # 10 at 2018-02-19T18:12:59-05:00 git apply ../0001-submod-go.mod-add-require-vgotest1-v1.1.0.patch git commit -a -m 'submod/go.mod: add require vgotest1 v1.1.0' git tag submod/v1.0.5 # 11 at 2018-02-19T18:13:36-05:00 git apply ../0002-go.mod-add-require-submod-v1.0.5.patch git commit -a -m 'go.mod: add require submod v1.0.5' git tag v1.1.0 git checkout master # 12 at 2018-02-19T17:23:01-05:00 mkdir pkg echo 'package pkg' cp stdout pkg/p.go git add pkg/p.go git commit -m 'pkg: add' # 13 at 2018-02-19T17:30:23-05:00 env GIT_AUTHOR_DATE=2018-02-19T17:24:48-05:00 echo 'module "github.com/vgotest1/v2"' cp stdout go.mod git add go.mod git commit -m 'add go.mod' # 14 at 2018-02-19T17:30:45-05:00 echo 'module "github.com/vgotest1"' cp stdout go.mod git add go.mod git commit -m 'bad mod path' # 15 at 2018-02-19T17:31:34-05:00 mkdir v2 echo 'module "github.com/vgotest1/v2"' cp stdout v2/go.mod git add v2/go.mod git commit -m 'add v2/go.mod' # 16 at 2018-02-19T17:32:37-05:00 echo 'module "github.com/vgotest1/v2"' cp stdout go.mod git add go.mod git commit -m 'say v2 in root go.mod' # 17 at 2018-02-19T17:51:24-05:00 # README.md at this commit lacked a trailing newline, so 'git apply' can't # seem to apply it correctly as a patch. Instead, we use 'unquote' to write # the exact contents. unquote 'This is a test repo for versioned go.\nThere''s nothing useful here.\n\n v0.0.0 - has pkg/p.go\n v0.0.1 - has go.mod\n \n v1.0.0 - has pkg/p.go\n v1.0.1 - has go.mod\n v1.0.2 - has submod/pkg/p.go\n v1.0.3 - has submod/go.mod\n submod/v1.0.4 - same\n submod/v1.0.5 - add requirement on v1.1.0\n v1.1.0 - add requirement on submod/v1.0.5\n \n v2.0.0 - has pkg/p.go\n v2.0.1 - has go.mod with v2 module path\n v2.0.2 - has go.mod with v1 (no version) module path\n v2.0.3 - has v2/go.mod with v2 module path\n v2.0.5 - has go.mod AND v2/go.mod with v2 module path\n ' cp stdout README.md mkdir v2/pkg echo 'package q' cp stdout v2/pkg/q.go git add README.md v2/pkg/q.go git commit -m 'add q' git tag v2.0.6 cd .. hg init hg convert ./git . rm ./git # Note: commit #18 is an 'update tags' commit automatically generated by 'hg # convert'. We have no control over its timestamp, so it and its descendent # commit #19 both end up with unpredictable commit hashes. # # Fortunately, these commits don't seem to matter for the purpose of reproducing # the final branches and heads from the original copy of this repo. # 19 hg update -C -r 18 hg tag --user 'Russ Cox ' --date '2018-07-18T21:24:45-04:00' -m 'Removed tag v2.0.0' --remove v2.0.0 # 20 hg branch default hg update -C -r 1 echo 'v2' cp stdout v2 hg add v2 hg commit --user 'Russ Cox ' --date '2018-07-18T21:25:08-04:00' -m 'v2.0.0' # 21 hg tag --user 'Russ Cox ' --date '2018-07-18T21:25:13-04:00' -r f0ababb31f75 -m 'Added tag v2.0.0 for changeset f0ababb31f75' v2.0.0 # 22 hg tag --user 'Russ Cox ' --date '2018-07-18T21:26:02-04:00' -m 'Removed tag v2.0.0' --remove v2.0.0 # 23 hg update -C -r 1 echo 'v2' cp stdout v2 hg add v2 hg commit --user 'Russ Cox ' --date '2018-07-19T01:21:27+00:00' -m 'v2' # 24 hg tag --user 'Russ Cox ' --date '2018-07-18T21:26:33-04:00' -m 'Added tag v2.0.0 for changeset 814fce58e83a' -r 814fce58e83a v2.0.0 hg book --delete v1 hg book --delete v2 hg book --force -r 16 master hg log -G --debug hg tags cmp stdout .hg-tags hg branches cmp stdout .hg-branches hg bookmarks cmp stdout .hg-bookmarks -- .hg-tags -- tip 24:645b06ca536d v2.0.0 23:814fce58e83a v2.0.6 17:3d4b89a2d059 v1.1.0 11:92c7eb888b4f submod/v1.0.5 10:f3f560a6065c v1.0.3 9:4e58084d459a submod/v1.0.4 9:4e58084d459a v1.0.2 8:3ccdce3897f9 v1.0.1 7:7890ea771ced v0.0.1 7:7890ea771ced v2.0.5 6:879ea98f7743 v2.0.4 5:bf6388016230 v2.0.3 4:a9ad6d1d14eb v2.0.2 3:de3663002f0f v2.0.1 2:f1fc0f22021b v1.0.0 1:e125018e286a v0.0.0 1:e125018e286a mytag 1:e125018e286a -- .hg-branches -- default 24:645b06ca536d -- .hg-bookmarks -- master 16:577bde103b24 mybranch 1:e125018e286a -- git/LICENSE -- Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- git/README.md -- This is a test repo for versioned go. There's nothing useful here. -- 0001-submod-go.mod-add-require-vgotest1-v1.1.0.patch -- From 70fd92eaa4dacf82548d0c6099f5b853ae2c1fc8 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 19 Feb 2018 18:12:59 -0500 Subject: [PATCH] submod/go.mod: add require vgotest1 v1.1.0 --- submod/go.mod | 1 + 1 file changed, 1 insertion(+) diff --git a/submod/go.mod b/submod/go.mod index 7b18d93..c88de0f 100644 --- a/submod/go.mod +++ b/submod/go.mod @@ -1 +1,2 @@ module "github.com/vgotest1/submod" // submod/go.mod +require "github.com/vgotest1" v1.1.0 -- 2.36.1.838.g23b219f8e3 -- 0002-go.mod-add-require-submod-v1.0.5.patch -- From b769f2de407a4db81af9c5de0a06016d60d2ea09 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 19 Feb 2018 18:13:36 -0500 Subject: [PATCH] go.mod: add require submod v1.0.5 --- go.mod | 1 + 1 file changed, 1 insertion(+) diff --git a/go.mod b/go.mod index ac7a6d7..6118671 100644 --- a/go.mod +++ b/go.mod @@ -1 +1,2 @@ module "github.com/rsc/vgotest1" // root go.mod +require "github.com/rsc/vgotest1/submod" v1.0.5 -- 2.36.1.838.g23b219f8e3