[ANNOUNCE] Push Me Pull You 0.2 - Tech Preview Release
Mark Williamson
mark.williamson at cl.cam.ac.uk
Wed Jan 16 10:27:22 CST 2008
> Thanks Mark. Looks like a good start.
The functionality implemented is a bit random at the moment, which is to say
I've not quite implemented "everything you need" at the GUI level (yet). I
already find that it's usable for my own work, though. I'm adding new stuff
all the time and simultaneously trying to support all the backend DVCS
systems in a uniform way.
> Can you give some quick notes on
> how to use it?
Hahah, yeah the documentation isn't so good right now :-) I'll describe this
from an "normal hg"-centric point of view but the process is basically the
same for all backends (modulo some of them not supporting all of these
operations). hg forest supports a restricted subset of these operations at
the moment.
The workflow I like in pmpu is something like:
1) fire up pmpu in the root of the repository (or use the hg pmpu extension,
which does this automagically from anywhere in the repo)
2) choose Foreign repo and see if there's anything cool to pull
<review interesting changes by reading through the incoming list before pull.
After pull just use a local history viewer, as usual>
3) do work
<use the annotate GUI to review who last touched a file, searching for mention
particular users or changesets, etc>
4) fire up commit tool of choice from the pmpu GUI
<pmpu is intended to just use an external commit tool, qct is easily the best
that I know of and there's no point me trying to do better ;-) >
5) pmpu automatically refreshes Outgoing changesets view after commit tool has
been run
5a) Optionally tag the latest change from the GUI. The tag will appear in
the "outgoing" list automatically.
6) hit "push" to send these all to the "foreign" repo using "hg push"
<If you can't push directly, hit the bundle button to create a bundle of
outgoing changesets to apply to the "foreign" repo some other way. If you
have a cmdline e-mail client configured then you can use "Send Bundle..." to
send the bundle immediately by e-mail.>
6a) Optionally create a release tarball / zip file from the current revision.
7) at the foreign repo, you can apply a bundle using "apply bundle..." and
then take a look to see how that has affected your incoming / outgoing flow.
> I'm guessing that to use this with hg, the idea is I could compare two
> _local_ repos? I assume comparing with a remote is not in the cards?
Actually, it just shells hg commands behind the scenes so the "foreign" repo
can be anywhere that hg is capable of talking to (local fs, ssh, http). For
hg, the "foreign repo" dropdown is initially seeded with entries from [paths]
in the hgrc for this repository and you can just pick one. If you want to
access another then typing in the path / URL and hitting enter should do the
trick.
> What is 'start server'?
It starts a local changeset server (on port 8000, the hg default) so that you
can do ad-hoc sharing. e.g. you're at a hackathon and want to quickly make
the latest code on your laptop pullable. You hit "Start Server", wait for
others to pull your changes, then hit "Stop Server" to shut it down.
In the hg case it runs "hg serve". For other backends, the CLI incantations
are similar but confusingly different - at the GUI level it's all the same.
Hope that helps some. If you're still curious then More Questions Please!
Cheers,
Mark
--
Push Me Pull You - Distributed SCM tool (http://www.cl.cam.ac.uk/~maw48/pmpu/)
More information about the Mercurial-devel
mailing list