6

Is it possible to clone a client-side repo directly to Kiln?

The use case I'm talking about is:

  • The common recommendation is "one repo per project".
  • During development, I decide to create a new project for a seperate component.
  • I create a new project in my IDE of choice.
  • Right away I make it a repo, using the IDE plugin for Hg (In my case its HgSccPackage for VS.)
  • This repo now only exists on my machine...
  • ... and now I want to push it up to Kiln server.
  • However, the repo does not yet exist in Kiln.

  • The current solution AFAIK, is to put down my IDE, browse over to Kiln site, create the repo, then either: clone it down to my machine and add the new project to it, OR copy the URL for the repo and manually set the new repo on my machine to push to that URL.
    Either way, this is far from frictionless...

  • Ideally, the last step in the first section is to push to a non-existent Kiln repo, which will be automagically created on being pushed to.
  • Alternatively, have some kind of client-side tool / IDE plugin / Hg plugin script that would allow me to manually create a matching Kiln repo (quietly using the KilnAPI in the background) in parallel to creating the clientside project repo.

Obviously, either solution would have issues to do correctly - however not doing either is worse, in my mind. Especially since the aim is to make branching and creating new repos as simple and frictionless as possible...

Fog Creek Case FC1996083

flag

3 Answers

2

I've just released a new version of mercurial integration for MS Visual Studio 2008/2010 - HgSccPackage v1.8 which have now an initial integration with Kiln and BitBucket.

You can create, view, delete or select your Kiln or BitBucket repositories from HgSccPackage in the folowing package windows: Clone, Synchronize or Path alias editor.

So, to push your existing local repository to Kiln you should do folowing steps:

  • From IDE run Synchronize window
  • Press Kiln button
  • Login (if this is a first time). The credentials will be stored on successfull login in the HgSccPackage settings and next time it will login automatically
  • Select an existing repository or create a new repository in specified Project/Group
  • Select it and return to Synchronize window
  • Push

If you want to store the connection with this remote path, then use Settings button in Synchronize window to add a path alias. It also have a Kiln button, so this is easy.

You can get it here: http://www.newsupaplex.pp.ru/hgscc_news_eng.html

link|flag
Nice, I will have to give that a try – Zachary Drummond Apr 13 2011 at 23:32
omg I am so excited about this. @Rob, FC crew, please take note - I think it's time to start packaging this plugin optionally with Kiln Client tools (just like FB has link to download VS plugin). Haven't tried it yet, but I'm sure it will work awesome. – AviD Apr 14 2011 at 21:57
1

I agree that it's not as easy as it should be. Personally, I think that if you have the appropriate credentials you should be able to create a new repo on pushing. We'd probably need an "Are you sure?" prompt in case you make a typo.

However, there are some additional considerations which make this feature harder than you might think (e.g., What project does the new repository go into? What are the default permissions?).

I've submitted a feature request. Please upvote the question (not this answer) to show your support.

link|flag
Thanks, @Rob. I'm sure there are other issues and considerations to do it right, but if I may suggest for those two: since I'm pushing to a repo, I should have the full URL - which should include the project slug, and the repogroup slug. Makes it easier to decide which project... And, the default permissions should simply be to inherit the parent project's settings... – AviD Jan 5 2011 at 9:31
Alternatively, an extended KilnClient VS plugin can have the user explicitly select project, repogroup, etc., and then create it right then (instead of waiting for pushing). – AviD Jan 5 2011 at 9:33
0

Isn't this what the import tool is for?

link|flag
No, I dont want to just import the repo, I want to clone it - i.e. keep the original local repo, but also create connections between them. And, I want this to be a lot more transparent - such that I dont have to think about importing and such, its just a repo is a repo is a repo, and Kiln server holds clones of all my repos. – AviD Feb 8 2011 at 8:16

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.