8ed3d76d8d8b — sietse.brouwer tip 6 years ago
readme: write intro and start writing examples
1 files changed, 61 insertions(+), 5 deletions(-)

M README.md
M README.md +61 -5
@@ 7,7 7,7 @@ Intro
   differences from subrepo
 Installation
 Quick start
-  if you have no guests
+  if you have no guests yet
   if the guests are already there
   if you have subrepos
 Usage

          
@@ 23,12 23,51 @@ Changelog
 License
 
 
+Guestrepo is like Subrepo, but it doesn't hang if one of your subrepositories
+is unable to push or pull. Instead, you are allowed and required to manage your
+subrepositories manually, and it gives you the commands to do so efficiently.
+
+If you have subrepos whose upstreams you do not manage yourself, but to which
+you occasionally make your own commits, you will probably prefer the guestrepo
+extension over the built-in subrepo support.
+
+
+Example: you have two guest repos. Of one, you want to follow the default branch; the
+other, you have pinned at a specific tag.
+
+    hg grsummary
+
+    # print incoming changes
+    hg grin
+
+    searching for changes
+    changeset:   1:6b43d531511b
+    ...
+    summary:     1
+
+    searching for changes
+    comparing with /mnt/data/sietse/proj/tryhg/hgguestrepo/two
+    changeset:   1:535f86f61ed3
+    ...
+    summary:     1
+
+    # fetch incoming changes
+    hg grpull
+
+    hg grsummary
+
+    # update one subrepo; the other remains static
+    hg grupdate
+
+    hg grsummary
+
+When you have added sub
+`commit` commits in all subrepos, `update` will update all subrepos, and it is
+impossible to `push` without doing the same for all subrepos.
+
+
 ### guestrepo vs subrepo
 
-Subrepo wires a lot of subrepo automation into the ordinary hg commands:
-`commit` commits in all subrepos, `update` will update all subrepos, and
-it is impossible to `pull` and `push` without doing the same for all
-subrepos.
 
 Guestrepo, contrariwise, lets you define the subrepos, and gives you a
 bunch of separate commands to update or inspect them all at once.

          
@@ 51,6 90,23 @@ Add guestrepo = C:\...\... to your hgrc
 Quick start
 -----------
 
+    # .hggrmapping: friendly_name = ssh://url.to/upstream
+    # .hgguestrepo: path/to/guest/checkout = friendly_name revision_to_follow
+
+    mkdir guests
+
+    hg clone https://example.com/upstream_one guest_to_follow
+    echo 'follow = https://example.com/upstream_one' > .hgguestrepo
+    echo 'guests/guest_to_follow = follow develop' > .hgguestrepo
+
+    hg clone https://example.com/upstream_two static_guest
+    echo 'static = https://example.com/upstream_two' > .hgguestrepo
+    echo 'guests/static_guest = static a1b3c9' >> .hgguestrepo
+
+    hg add .hgguestrepo .hggrmapping
+
+    hg commit -m "Added guest repositories"
+
 ### Quick start (no guests yet)
 
 Specify the files in `.hggrmapping` and `.hguestrepo`