For me the killer features of this release, besides the refreshed UI, are the repository registry in the consolidated workbench. This makes clones so much easier to switch between and organize.
But there's a lot in this release. I've been testing the betas for a while; I would suggest that if you are an hg, make the upgrade.
Hello! For my non-profit I do version control of EVERYTHING, but at my day job I do version control for documents and software, but it would work with CAD as well.
In the past I used Subversion, but now I use Mercurial: both of which have a GUI interface which is pretty easy to navigate once you get used to it. There is one main difference between the two:
Subversion is more serve based - lots of people working on the same project will check their changes into subversion to keep the central server up-to-date, and everyone pulls changes from the server to get what everyone else has been doing. This takes good discipline, and an excellent working knowledge of the server and how to troubleshoot subversion.
Mercurial is more peer-to-peer. Everyone has the 'server' one their own computer, and they can pull or push from eachother as peers. Of course, for simplicity sake, we actually stick a repo on a server to keep everyone synced up, but mercurial is nice since you don't actually need the server to do your day-to-day updates, you only need the server when you want to share it with everyone else.
I recommend TortoiseHg for mercurial. No need for server experience, httpd troubleshooting, or any of that. http://tortoisehg.bitbucket.org/download/ << download and give it a try there. There are some good video tutorial on mercurial, such as this one: https://www.youtube.com/watch?v=wqU9MFplgrQ. WARNING: TortoiseHG does take some getting used to, and there are ways to hose up your work. Make sure you branch whenever you are doing work on your own, and then merge those changes back into the main branch (or Trunk). It does take some team discipline, but do sit down with your team for a day and figure it out. You won't regret using this simple, but versatile tool.
To be a programmer you must be familiar with the command line - this is not optional.
Having said that, there are numerous GUIs supporting all commonly used DVCSs. My two favourites are Tortoise Hg (for mercurial, integrates with Windows explorer) and Source Tree (GUI for both Hg and git).
TortoiseHG and tortoisegit also exist for Mercurial and Git respectively.
I can't speak for tortoisegit but I've been using tortoisehg for some time and have been very happy with it.
You're looking for Mercurial (Hg). It works nicely on Windows, is very similar to Git, and it has plugins for everything. A lot of Windows users use it so Microsoft even decided to support it on Codeplex. TortoiseHg is excellent. This tutorial will get you started. And if you want to host online and your dev crew is composed of 5 users or less you can get free Hg hosting on Bitbucket.
I've been using Mercurial (via TortoiseHg). The determining factor for me was that Hg lets me use my current directory structure. As I already store each project/site in a separate folder this matches with my workflow. As I'm not working with a group I just need something simple; many of the features of a version control system are irrelevant to me.
For those familiar with subversion, but want a DVCS, there's also Mercurial. Command syntax much closer to the svn you know. Cross-platform gui TortoiseHG. Slick "extensions" mechanism for writing plugins to enhance the python-based core library.
I prefer the old commit tool.
How do you do HUNK selection with the new one?
Here's the old hunk selection tab.
http://tortoisehg.bitbucket.org/manual/1.0/_images/commit.png
New one doesn't seem to have it.
http://tortoisehg.bitbucket.org/manual/2.0/_images/commit.png
Guess one has to using shelving now.
http://selenic.com/pipermail/mercurial/2011-March/037334.html
Why only git or subversion? There are lots of other choices. For instance, I use Mercurial for most of my projects, and I host them (for free) in private repos on bitbucket. There is a sweet VS plugin called VisualHG which integrates some of Mercurial's functions right into the IDE. Some people use TortoiseHG as a client, but I've been trying to stick to the command-line lately.
If github had free private repos like bitbucket does, I would probably have to switch over, because their tools are 100% cooler, but I really prefer to have my repos private.
I'm not sure if it's appropriate for your setup, but if you're just keeping documents in directories on a file system, installing a versioning system might be exactly what you need for keeping track of revisions. TortoiseHg is dead easy to install and use. You just need to right-click and commit after you revise a document. Then you can right-click a file and view historical versions easily.
There are a crapton of software developers who make tools to help them do their work and then release those tools for free, and there is probably a large amount of crossover between their needs and the needs of attorneys. It could be that there are some useful tools out there that you're unaware of because they were designed for a different market.
To be honest i dont ever use pip to install anything. So the first one i couldnt help with (but that doesnt mean someone else wont later respond). The second error is you do not have mercurial installed (hg). Install that first. http://tortoisehg.bitbucket.org/ And if you do that you might as well execute the commands i gave above. The third...oh whoops forgot your on windows. Just download the msi one from the link above that corresponds to you python version. For example "pygame-1.9.1.win32-py2.7.msi " is pygame 1.9.1 for 32 bit windows for python 2.7 version. However this is an older version. Cloning the repo via mercurial will get you the latest
BitBucket also supports Mercurial (which was actually the VCS they started with, Git support was added later).
If trying out Mercurial, and you like GUIs, I'd definitely recommend TortoiseHg. Unlike the TortoiseSvn & TortoiseGit which are windows-only, TortoiseHg is a cross-platform pyqt-based app that can be invoked from the commandline -- which makes it great for doing complicated per-hunk commits, etc.
>The “commit all” case is only slightly more frequent than the partial one. Git’s default behavior makes you opt in for a change to be committed. This in turn makes “git status” and “git diff” a prerequisite for committing, introducing an extra intermediate step that forces you to reflect on what modifications you made to what files for what reason.
Fair enough.
>Most of the other points you make regarding git’s atrocious UI I agree with. However, those are things on the surface which you can learn and come to terms with eventually.
Of course. But why bother, when Mercurial does the same thing without the mess?
>You don’t have to like your tools.
…but it helps a lot if I do.
>The staging area OTOH is a completely unique approach that puts an extra barrier in front of each commit, thereby forcing the user to be more diligent.
Well, I see your point, though I think GUI commit tools are a better approach. They don't force you to be more diligent, but they do make it immediately visible what you're committing, as you're committing it. Why think when you can plainly see?
My favorite such tool is TortoiseHg, an excellent cross-platform GUI front end for Mercurial, which allows commit contents to be chosen on a patch-hunk level with checkboxes. That way, I can easily review everything going into the commit. Good stuff. I imagine there's something like this for Git, but I haven't looked.
> as most well developed development applications are multiplatform
Not true, unfortunately. For example, the best Mercurial client is resolutely Windows-only, as is my favourite static code analysis tool and the best free documentation creation utility.
> is it command line. I don't want command line at all
I've used TortoiseHg for Mercurial on Windows and it's decent, so you should check that out.
There are also plugins for most IDEs.
Having said that, if you're unwilling to learn how to use the command line then you're not going to go very far at all as a programmer. Using the command line is an essential skill, especially if you start developing on platforms other than Windows. I wouldn't bother learning batch programming or anything like that, but you should at least be familiar with calling commands and passing command line parameters and such. Better yet, install Cygwin, learn how to use it and learn some shell programming. Your future self will thank you.
Mercurial is quite easy to use from the command line too:
# Pull latest changes from repo hg pull
# Update working directory to tip of current branch hg up
# Commit changes hg commit -m "Commit message"
# Push changes upstream hg push
As well as putting html files in the project's downloads, you can also create a repo called myusername.bitbucket.org and put your html there.
For example: http://hal.bitbucket.org/ the repo is: https://bitbucket.org/hal/hal.bitbucket.org/src
TortoiseHG do this: http://tortoisehg.bitbucket.org/
Mercurial/Hg (TortoiseHg) and Bitbucket are great alternatives if you're just starting out. When I planned my move from Subversion, I picked hg because of the easier learning curve.
So, in our office (3-man team) we use a two-stage backup, and it's working pretty well for us.
Stage 1 is a NAS in the office, which contains all of our working files, documents, etc. We also use the NAS for version control, using TortoiseHG. This means that we're insured against the failure of any single computer.
Stage 2 is for the event that something catastrophic happens to the office, and that's to have all the assets on the NAS backed up to Dropbox.
The main benefit of this system is that no-one really has to think about backing up files. We've basically built backups into our asset pipelines without any overhead. This means that rather than us having to work hard to make sure everything's backed up, it's actually really difficult to get any work done without backing it up.
Try TortoiseHg. It's an amazingly powerful GUI for Mercurial and very easy to set up for use on your local machine.
Mercurial has a lot of conceptual similarities to Git, so the knowledge gained will help you if you later decide to switch.
Just to be different from the other offerings, here's a strange (but oddly nice) one:
This falls down if you are doing complex remote management (remotes show up as tags, branches show up as bookmarks). Bookmarks copy git-style branching so that works, but I don't know that tags map so well to git's remote concept.
The problem would be since git was allowing anyone to view the answers. In your case, you could be saving your code on dropbox, in a private folder.
Using any cvs is very useful, even when working alone. When you have to revert the code slightly, or see a previous change, you really miss it when you don't have it. (If you want, you can set a repository to autoupload to google code. probably git too.) Otherwise it sits in a simple subdirectory of the project.
For code versioning, a very easy to get started in one is mercurial. The GUI takes care of any hard work. Just right click a folder -> new repo. Then commit. http://tortoisehg.bitbucket.org/
You'll really want to learn about revision set syntax: it's a small expression language that lets you write all kinds of powerful set-based queries of your repository history.
They're very handy: you can use them almost anywhere where you normally specify a revision, such as hg log -G -r foo
.
> After sometime I need to check which all branches that have been merged with Staging.
::staging & head()
This gives you all ancestors of staging
that are also named branch heads (in other words, the set of branch names in staging's history).
> I would also like to know if there has been any unmerged commits in these branches.
all() - ::staging - ::live
This gives you all changesets, minus the ancestors of staging
and live
(in other words, all changesets that have not already been merged to either of them).
> Please Consider that I have a lot of branches and examining the visual history using hgweb.cgi is not really practial.
TortoiseHg is a pretty great UI for interactively viewing and exploring changeset queries.
> While I can use linux (actually solaris, similar) I'm not great with it,
Time to learn!
But more seriously, if you do want to use a distributed version control system, you can try TortoiseHG, which brings a shell extension to Windows for Mercurial.