Overview
Path Guessing eliminates the hassle of either adding a bunch of paths to your hgrc file or copying URLs back and forth all day long. The incoming
, outgoing
, pull
, and push
Mercurial commands are supported for this extension.
This article provides detailed information about how Path Guessing simplifies your interaction with Kiln each time you perform a different activity on it along with an example scenario.
Information
- After you install the Kiln Client, which includes the
kiln
extension, you see the following section added to your Mercurial.ini file:
[kiln_scheme] kiln=http://<yourdomain>.kilnhg.com/Repo
- Path Guessing uses these entries to determine the location of your Kiln account.
- If you use multiple Kiln installs, Path Guessing will support guessing to different installs as long as they are all specified here.
- After cloning a repository, the only path available (the default path) is the repository that was cloned off, in this case, a personal
abc
branch of a project:
PS C:\demo> hg paths
default = https://songexe.kilnhg.com/Repo/Website/2-0/abc
- For example, some changes are made, and you want to push them out to a branch. If that is your default branch, you can type
hg out
:
PS C:\demo> hg out
comparing with https://songexe.kilnhg.com/Repo/Website/2-0/abc
searching for changes
changeset: 29:6951f1d98d7b
tag: tip
user: Abc Xyz <abc@fogcreek.com>
date: Thu Aug 19 14:00:59 2010 -0400
summary: Added newfile.txt to the repository
- For example, some changes are made, and you want to push them out to a branch. If that is your default branch, you can type
- If you type
hg push
now, it gets pushed out to the default branch:
PS C:\demo> hg push
pushing to https://songexe.kilnhg.com/Repo/Website/2-0/abc
searching for changes
remote: kiln: successfully pushed one changeset
- Now let us see how you can push this change to the parent repository. Previously, you would have to go into Kiln and manually grab the URL for the parent.
- By using the command
hg kiln --targets
orhg kiln -t
for short, you can see a list of all non-empty repositories related to this in Kiln:
PS C:\demo> hg kiln -t
- The following Kiln targets are available for this repository:
http://songexe.kilnhg.com/Repo/Website/1-0/OldWebsite
http://songexe.kilnhg.com/Repo/Website/2-0/Parent
http://songexe.kilnhg.com/Repo/Website/2-0/abc
http://songexe.kilnhg.com/Repo/Website/2-0/xyz
http://songexe.kilnhg.com/Repo/Website/2-0/xxxx
- Now, all you need to do is completely and uniquely specify any URL part:
PS C:\demo> hg push Parent
pushing to https://songexe.kilnhg.com/Repo/Website/2-0/Parent
searching for changes
remote: kiln: successfully pushed one changeset
- By using the command
- Since
Parent
was a unique part of the URL slug, Path Guessing knew exactly which repository was meant and pushed to it without forcing you to fumble around with URLs. - If you had to type
hg push 2-0
instead, since this does not uniquely match any part of the URL, Path Guessing just displays a list of all matching targets:
PS C:\demo> hg push 2-0
abort: 2-0 matches more than one Kiln repository:
http://songexe.kilnhg.com/Repo/Website/2-0/Parent
http://songexe.kilnhg.com/Repo/Website/2-0/abc
http://songexe.kilnhg.com/Repo/Website/2-0/xyz
http://songexe.kilnhg.com/Repo/Website/2-0/xxxx
Summary
Thus, Path Guessing improves your interaction with Kiln by removing some inconveniences and streamlining your workflow.