Kiln Command Line Path Guessing


Follow

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
    • 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 or hg 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
    • 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.