Migrating from Surround SCM to Perforce - version-control

So we have our whole work based in SSCM right now with a lot of history and versions etc. And want to move everything to Perforce.
Are there any good resources out there (I tried looking but couldn't find any) which could help me do this?
If not I was thinking of a python script to check out everything from SSCM and then put it to perforce. Anyone with this sort of experience have any thoughts to share?
Will it be doable to shift all history, comments and versions to Perforce?
Thanks

Yes, it's doable, but it looks like you're on your own. Perforce has some migration tools available for various SCM systems, but alas Surround is not one of them. You might be able to use one of these as a starting point though. I have migrated a VSS repository using the script they have available and it worked great.

Related

Netbeans as Mercurial Merge Tool

the company I work for have started to use Mercurial as our version control software, with NetBeans becoming the editor of choice for most developers.
Up until now we've been using WinMerge and KDiff3as our Mercurial merge tool, but have decided that we don't like it.
Now one of the things we've noticed about NetBeans is that it has a very nice diff tool built into it, so was hoping that there might be some way of using this as the Mercurial merge tool?
Can anyone let me know if this is possible, and if so, how?
(Or, are there any other windows diff/merge tools that are as good as the NetBeans diff tool?)
Cheers
I am not sure about using the NetBeans diff tool but as for other merge tools that will work well with Mercurial, I would recommend Perforce's Merge tool which I have heard is somewhat similar to the Netbeans one.
Another good one is DiffMerge.
As near as I can tell, there is no way to call Netbean's diff/merge tool from the command line, which is necessary to use it from Mercurial.
FWIW: I use Beyond Compare 3 for all of my diff / merge activities, even though I use Netbeans as a primary editor, and it does have Mercurial integration.
Functionally, I find the Beyond Compare interface to be a little easier, and it comes with a number of other features that I didn't think I needed, but have since grown completely dependent on, such as performing text diffs on entire folders, image diffs, and pushing changes between files that are being diffed.

How do I use Mercurial?

I'm assuming Mercurial is for having an updated website and it archiving the old stuff? Easy to test things and such?
My question is, how exactly should I get started and can somebody give me a crash course in using Mercurial and using the following techs below:
Notepad++ for coding
FTP
PHP/MySQL
Jquery & other js libraries
I use windows and would like to keep things fairly simple. I'm developing 1 website currently and want some kind of CVS system in place. Or should I just stick to my current edit file in notepad++ and upload via ftp method and make a backup copy of everything every once and a while?
Any thoughts?
EDIT: I'm doing http://bugtracker.gttools.com/public/wiki/bluehost/Mercurial right now in order to try and 'install' it.
I'd definitely recommend taking a read through the excellent HGinit http://hginit.com/ site in addition to the official guide.
Definitely try and move across to using some form of version control (SVN, git or mercurial) as it'll save you down the line.
Mercurial is a distributed version control system, much like Git but allegedly slightly simpler.
A good tutorial by Joel Spolsky can be found here.
If you read up on https://www.mercurial-scm.org/guide under Basic Workflow you should be able to figure out how to work with it while editing files using Notepad++ etc.
From your question it sounds like you don't know much about version control (like you have a very basic grasp of what it is and why it is useful). So perhaps the first thing you should do is read up on that in general first of all.
But in terms of using Mercurial I don't think you will find a better insight into how to use it and why it is so good than Joel's tutorial, which you can find here hginit Tutorial
HGInit is a good tutorial for mercurial. Basically you have to hg init in the directory you want to be under version control. If you don't like the command line, you can also use gui tools, like tortoisehg.
If I'm not mistaken you also want to upload the latest version to the website. If I'm right ftp access won't be enough for this (unless you define a post-commit hook, that uploads the directory using ftp).
I'm assuming Mercurial is for having
an updated website and it archiving
the old stuff? Easy to test things and
such?
Not sure what you mean here. Mercurial (and all version control systems) lets you archive your changes as you make them, label and manage your releases so you can track code that goes together, and branch when you need to do parallel development.
You should be checking in your changes as you make them. If anything goes wrong during development, you can roll back to the last good version you had. It's a great way to make sure that you don't lose days and days of work because you forgot to check in.
Check in early, check in often.

Alternative to subversion / TortoiseSVN on Win xp?

I'm looking for an alternative version control software to TortoiseSVN/ Subversion. Only interested in those with a GUI and an easy installation process, though if multiple installations are needed (Such as vault, which needs both a client, server, and lots of other stuff), please give some installation instructions with your answer.
I'm a one man shop as of right now.
Use Mercurial and TortoiseHg.
Just as matter of interest why is it that you dont want to use subversion?
If you dont want to look after the subversion server and repos, you can always put them in places like assembla, or similar(i only used them and pretty happy wit the service and the value) , that for a small fee will look after all that and the integration with trac, etc.
And the integration tools with most IDEs are pretty good.
Other option is git, tho integration with windows is not great and this is something that you seem to be very interested in.
(I m not afiliated with assembla, just a happy customer so far)
I'd be interested in why you don't like SVN, but some alternatives that I have some experienve with and are free (atleast for one man shops):
CVS
Vault
Perforce
I like Perforce when in an environment with a lot of users (but then it starts costing serious money), but for my personal (one man) stuff, I use SVN - it's much easier to administer.
I second Bazaar -- I've recently been part of converting two teams to using it and it's been quite easy. (Think of it being like git, but able to work in the same way you're used to doing with svn, plus able to work on Windows.) Two people in my office are using TortiseBZR on Windows with good success. It's easy to set up a server too -- I had it done in less than 30 minutes and able to work with others. (The easiest/quickest way to do a server is over SFTP, but you can do it all on your machine too, if you'd like.)
I use GIT on windows with TortoiseGIT and i'm loving it! .
Git Extenions looks like a better way of using Git in Windows than the alternatives. It even comes with a Visual Studio plugin.
VisualSVN integrates directly into Visual Studio if you are working on the .net Framework. The developers of Stack Overflow used it!
PS: Its not free

Do you know a good open-source version-control viewer?

I'm looking for a tool like Atlassian's FishEye. The alternatives I've found so far (like StatCVS, ViewCVS or Bonsai) are either lacking in features or are quite a pain to install and maintain. So before staying with one of these tools, I'd like to be sure I did not miss any other good, easy to install, open-source (prefereably java) version control-viewer which supports cvs as scm.
Another SVN tool which has repository browsing capabilities is Trac. This is nice because as well as a browser for the repository it also has a timeline showing commits. It also does bug tracking.
Warehouse is pretty cool
ViewVC is a good open source, web based, repository viewer similar to FishEye. I know you've looked at it, and you're right, it was a hassle to set up, but once setup, it's run without any intervention for almost three years for us.
There is also CVS Monitor, though it hasn't got the nearly the number of features as FishEye.
We use ViewCVS for repository browsing.
If you were using SVN I'd highly recommend Tortoise SVN.

DVCS Choices - What's good for Windows?

So I want to get a project on a distributed version control system, such as mercurial, git, or bazaar. The catch is that I need the Windows support to be good, i.e. no instructions that start off with "install cygwin...". Now I've heard that git's Windows support is decent these days, but don't have any first hand experience. Also, it sounds like the bazaar team has an explicit goal of making it as multiplatform as possible.
Can I get any recommendations?
I use msys-git on windows every single day. Works fast and flawlessly.
Although the newer build has some problems with git-svn, this build (Git-1.5.5-preview20080413.exe) has a working git-svn.
There's a nice comparison between git, hg and bzr in this InfoQ article. They all have their strengths and weaknesses. You'll have to think about your project and your workflows and choose the best fit. The good news is that they're all fairly good.
At last I checked, the only thing you need for Mercurial is Python and to grab a binary package. If you find yourself with more time and want to fiddle / build it yourself, look here.
The only real drawback with HG is its idea of branching .. but for some people that's a major plus.
I like it because its intuitive, easy to install and works on anything that Python does. I don't think that all of the available plugins will work for you, but most should.
I've had the best luck with Bazaar, followed by Mercurial. Never could get Git to work correctly. A quick search shows that Git still requires clunky emulation layers like Cygwin/MSYS, and I can't find any integration tools like TortoiseBzr for Git.
With Mercurial in Windows, I had several minor issues (insensitive paths, symlinks, ). They were usually fixed eventually, but I felt that the same quality of testing was not applied to running on Windows as for the other platforms. Bazaar also had better documentation for integrating with native applications like Visual C.
EDIT: Perhaps add a "dvcs", "distrubutedversioncontrol", "distrubuted"
I've used Mercurial on Windows with no problems. You can use TortoiseHG or just use the command line. Mercurial does require Python, but that is easy to install in Windows as well.
Mercurial Binary Packages
I agree with basszero. I'm using mercurial under windows and it's as easy and reliable as it can get. My development team is spread over Europe (well Dublin and Vienna :-).
We use VPN to commit or sometime the built in webserver (hgserve). Both work fine with no problems out of the box.
Also diff3 open source tool works perfect with mercurial and TortoiseHG out of the box.
If you are concerned about an easy to use interface:
The bazaar folk now include TortoiseBzr in their windows binary package. That's got to be a pretty strong indicator that they think it is up to snuff. I don't know what the maturity/stability of TortoiseHg is, but there certainly isn't a decent GUI interface for git yet, and the MSYS git build still needs some work IMO.
If your team are comfortable with or prefer the command line, then either bazaar or mercurial would probably work well for you, and are both probably about the same in terms of learning curve. Git's learning curve is much higher. It is like the swiss-army knife that is almost wider than it is long, with all the little gadgets and do-dads in it and hanging off it, with the springs so tight that you occasionally slice a finger open trying to prise a blade out.
In my experience using GIT on windows is a major pain. But I have been using Fossil SCM for some time now, and I think it actually fits your needs exactly.
It also has a built in Ticket system and a Wiki. And the whole program is contained in 1 file and it works right out of the box.
I totally recommend it.
Here is a link to the site http://www.fossil-scm.org/
Remember, this site is self hosting, what that means is you are looking at the web interface to fossil it self, when you look at tickets and the wiki and documentation, you actually are using fossil.
But if your project has millions of lines of code and is a few gigabytes in size, you have to use GIT, there is no way around that problem.
Enjoy.