(share extension) Am I about to shoot myself in the foot?

Ti Strga wearyofallthiscrap at gmail.com
Tue Apr 15 19:05:47 UTC 2014


I'm on recent cygwin on win7, using Mercurial 2.7.1.  I also have
TortoiseHg installed, but only use it for the excellent DAG
visualization (sometimes graphlog doesn't cut it) and access to kdiff3
during complicated merges.  For minute-to-minute work I prefer the
standard command line because I like to know wtf's going on.

[skip this paragraph if you don't want the backstory]  I also prefer
different long-term lines of development to be in different directory
trees.  I'm old school.  I know that with the Tortoise* tools it's all
the rage to have a single filesystem location, and change things with
the equivalent of "svn switch" or "hg update <branch>" or similar, but
those kids can get off mah lawn.  Among other things, separate
directories lets me use filesystem tools like locate, find, and "grep
-r" across branches and even across VCS types without having to
translate them to each VCS' own search tool.

So for named branches, I end up cloning entire trees, then updating to
the branch in the clone.  Separate branch == separate repo == separate
directory.  Works great... except when it's time to copy changesets
around, and then it's a ton of pushing, pulling, merging.  There's
also a potential source of oopses when "working in branch X" and
"working in directory X" don't mean the same thing.

Just discovered the "share" extension.  This *looks* like exactly what
I want:  different working directory states, but only one DAG.  I
don't use strip, rebase, or any of the other "revisionist history"
commands (sorry, couldn't resist).  Tagging and branching should be
okay... what about bookmarking?  What happens if I am in a "shared
clone" and push to an offsite repo?  What happens if I want to do a
regular clone operation from a shared repo, is that even supported?

Part of me wants to jump in boldly and just start experimenting,
trusting to the backups if things go wrong.  Other part of me knows
how troublesome it was to restore from backups the last time.  (That
smoking crater with the yellow police tape around it?  That was my one
experiment with git.)  It seems to work fine on a "hello world" repo,
but "hello world" hasn't inspired me with confidence since last
century.

Is this the intended use case or am I about to have a painfully
educational experience?



More information about the Mercurial mailing list