views:

722

answers:

1

I posted this question on superuser.com but I wasn't sure if it was appropriate there..

Anyway:

Hi,

I'm coming from a TortoiseSVN background and decided to give TortoiseHg a try.. One thing I got really used to with TortoiseSVN was the SVN Repo-Explorer, which worked quite similarly to Windows Explorer.. However, when I tried to use TortoiseHg's Repository Explorer, what I got was something else, it was more like TortoiseSVN's Show Log. It showed me what the recent commits were and what files were changed and even had nifty graphs.. However, I'm still left wanting for TortoiseSVN's Repo-Explorer..

Does TortoiseHg have anything like this? How am I supposed to poke around the Repository if I can only view changed stuff?

Thanks,

kreb

+9  A: 

I might be wrong as I have little experience with Hg myself, but I believe the reason TortoiseHg doesn't have a repository like its SVN counterpart is because Hg is a distributed VCS instead of a centralized VCS like SVN. So, the actual repository is your "checked out" copy. When you commit, you commit to your local repository, then you can push changes to other people or locations (such as google code, or your team mates). There are actually multiple different repositories for a project located in many places, instead of a single one, so there isn't really any meaning to "exploring the repository". The best you can do is check for incoming change-sets and view your local repository (using windows explorer).

This is mostly my reasoning based off a little experience with both. I might be wrong, but I hope this sounds reasonable.

This article might help clear it up: Distributed revision control. It took me some time to wrap my head around the idea of a distributed VCS too. In a nutshell, it's kinda like emailing your changes to your team mates. Everyone has their own individual repository, and each updates their own repository by getting change-sets from others.

Benny Jobigan
Sorry, I didn't quite understand.. What I have is I created a folder, and then right-clicked->TortoiseHg->Create Repository.. I then imported my repo from svn to that using some tool.. How do I check out a copy of this repository (to use as my "local" repo) that I can work with..?
krebstar
As I understand it, when you chose "Create Repository", that **is** your repository. You don't check it out from there, you just work on it in place. You could, however, create *another* repository elsewhere and push changes to that 2nd repository. If you do that, it's a little like SVN, but each is its own stand-alone repository. There is no central "master" repository. That's what makes it a distributed VCS.
Benny Jobigan
Oh.. Then how do I work with my projects? All I see inside the repo is a .hg folder and a .hgignore file. Inside the .hg folder is a store folder and it contains the repo that I imported, although the filenames are somewhat weird.. :( Sorry if I'm being dense and not grasping the concept of DVCS.. =/
krebstar
Without seeing your files, I can't say for sure, but basically you just work on the files in the "repository" as you normally would if you weren't using a VCS. When you finish making some changes, commit them to the repository. Hg keeps the changes in its hidden folders (.hg). However, I never imported a project from SVN (only created fresh ones from unversioned projects), so perhaps the import tool did something odd.
Benny Jobigan
Okay, thanks Benny.. I'm going to try some regular imports and see what happens.. Thanks.. :)
krebstar
Oh, I get it now.. Thanks Benny.. Although, until I can import my svn repo (with all the change history), I think I'll have to hold off on TortoiseHg.. =/ Thanks..
krebstar
No problem. I'm glad you figured it out. Personally, when I first got Hg, I thought it was actually a centralized VCS (I didn't know there were other kinds), so I was really confused because it didn't act like I expected. After I realized what was going on, I decided to stop using Hg and use SVN, because I was looking for the centralized model. To me it makes more sense conceptually to have a 'master' repo, and also as a single hobbyist writing stuff, a central repo fits my needs better.
Benny Jobigan
@krebstar you should be able to do that now with http://mercurial.selenic.com/wiki/ConvertExtension
jk
@Benny The beauty of a DVCS is that it can act as a VCS if you want.
Nick Pierpoint
@Nick That's true, and I think a DVCS would be pretty useful in many situtaions. However, I feel I just prefer the stricter centralized model of SVN for my own use. (And, conveniently, my hosting service (DreamHost) has svn stuff. =)
Benny Jobigan
Thanks for the link jk.. :) Will check it out.. :)
krebstar
@jk actually, it was this convert extension that I used to convert my repo but it didn't work as I'd expected.. I got an empty repo with just the .hg and .hgignore. However if I rightclick and choose Repository Explorer I can see the log of all the commits and the changed files.. Just not the projects.. Thanks..
krebstar
@krebstar you need to update to the tip
jk
@jk Whoaa!! That worked!!! THANKS!! :D
krebstar