Choosing VCS for Single Developer, Small Projects, Two PC's, Two Locations
-
.. and you can use the github on-line browse functionality to see what you changed and where (e.g. blame)
-
Personally, what I'd like is some sort of "VCS-on-a-stick" -- have everything on a USB device that can be carried around and used on any (Windows) system where I may need it. :cool:
There is a git-for-windows portable version that runs from a memory stick
-
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
I suggest a mercurial repository on bitbucket.org. I am just in the process of migrating from CVS to mercurial and having now used it a little I believe it is much better than many of the alternatives. Having your code in the cloud allows you to access it anywhere, and you have a complete history on each machine you use so it does not matter if you do not always have access to the remote server, unlike CVS or Subversion.
-
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
I think git fits the bill perfectly for you.It's a distributed VCS wich means every CLONE of the repository IS the repository(contains all history and code).Once you COMMIT a changeset to one of your clones you can PUSH it to any repository to wich you have access(say your usb stick for example).If you also want your code to be backed up online, assembla.com offers free private Subversion and Git repos.
-
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
I was in the same position as you about source control, until I discovered SVN... It was easy to learn, easy to setup a server. Even working as alone programmer, it's a fundamental tool. I used it a long time until I found GIT. It is GREAT! To SVN user, it almost impossible to believe the things you can do with branches... There a lot of free server and if you need a own server, you can setup it with GitStack! And better, you DO NOT NEED to use as a addin with VS! I strongly recommend that you try it.
-
Yes, it's true. Read:
Quote:
9. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. For more information, see www.microsoft.com/licensing/userights. You may not • work around any technical limitations in the software; • reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation; • make more copies of the software than specified in this agreement or allowed by applicable law, despite this limitation; • publish the software for others to copy; • rent, lease or lend the software; or • use the software for commercial software hosting services.
The Express editions of Visual Studio don't get Source Control until the release of version 11 and TFS Express. Yes, you heard that right, Team Foundation Server Express[^] edition.
A guide to posting questions on CodeProject[^]
Dave KreskowiakThis only refers to functionality available in Visual Studio (Express). there's nothing stopping you from using a toaster, a hair-dryer, or another VCS for that matter. Your quote affects neither. (By your interpretation it would affect all!) [edit]Maybe you have misunderstood the request to somehow add in the functionality of a VCS into the VisualExpress IDE? I think the last paragraph pretty much makes a point of excluding that.[/edit]
-
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
So, as the latter posts have tended to focus on, I've headed into Git and Bazaar land. Only I can't push from one of the locations to Launchpad (haven't tried GitHub yet), network errors, I assume server firewall based so not much hope of a work-around - same issue with DropBox. So I think I need to keep using sneakernet but somehow integrate that with Git or Bazaar. I think I therefore want to create my main / origin repo on the USB stick* and pull / clone / checkout** from that to both the physical devices. The only way this then goes horribly wrong is if I lose the USB stick at the same time as whichever device I was working on most recently also crashes (e.g. HD failure), otherwise I will always have a complete version in at least one of the three locations (or more). I just don't have the convenience of a centralised (cloud based) origin. It looks like Git might be best for this since each you clone i.e. you get a complete copy of the repo. I suspect that's what I need for sneakernet... * Or one one of the devices and pull / clone / checkout from that to the USB stick and then copy that to the other device - or something like this anyway - any guidance gratefully received (at least if it's in very practical / for dummies mode until I have the concepts sorted in my head). Or perhaps just use the USB stick to xcopy the repo between the two locations - I don't think that would cause problems since I assume the client would just use whatever data is in the copy and not complain that somnething else had changed its database, as long as I made sure I was also copying the hidden folders that Bazaar creates for example. ** Still struggling with terminology! Mike
-
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
If you're running Windows, VisualSVN Server (free, Apache based) coupled with either the command line Subversion client or TortoiseSVN is a good choice. If all of your machines are on the same network, you're golden. If you have to access your repository over the inter webs, you'll have to open up some ports on your network, which can be a security risk, but it's technically rather simple. Any version control is going to require some hands on learning time, so you should account for that. Subversion is just one option, there are a few others.
Currently reading: "The Prince", by Nicolo Machiavelli
-
Personally, what I'd like is some sort of "VCS-on-a-stick" -- have everything on a USB device that can be carried around and used on any (Windows) system where I may need it. :cool:
The easiest way to do that (that I know of) would be to create a file-based repository with SVN and then run the server from the same device as the client. I've done that when evaluating SVN: back then I put the rpository on my local hard disk, but there's nothing stopping you from putting it on an USB stick.
-
But it's not because you can't extend VS that you are unable to use a version control system. You can use one from the command line or use a client like tortoise. You'll learn more about source control too.
Exactly.
-
Once again, thanks to all. Looks like I need to go off andlearn how to play nicely with a VCS and a hosting site like GitHub or Launchpad. Ho hum. Thanks again. Mike
I've found that the concepts of Git (and relatives) are based on the typical needs of distributed development, especially in projects with a large number of developers. It's a typical scenario for open source projects, and that's where it comes from. I've heard that Mercury is based on the same ideas and concepts, but having tested neither Git nor Mercury I couldn't say which is the better. SVN is older than both, and doesn't take the special needs of distributed development into consideration. But otherwise it is still a very good tool and although I keep asking around I never found anyone who could point out something that is better in Git or Mercury as long as you just use it in a local development team! I'd definitely consider personal development to be rather local ;) I found SVN to be rather easy to learn, specifically on Windows, where TortoiseSVN provides not only a terrific UI, but also an equally great documentation that explains everything you ever need to know about using SVN in Windows. I don't know about Launchpad. In fact the only other VCS tools I have personal experience with are VisualSourceSafe (and that is really more of a source destruction system) and CVS, which is the predecessor to SVN and as such not a reasonable choice (although it's still way better than VSS or using no VCS at all).
-
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
Here are four different scenarios you could try. There are other variations you could do on this as well. Most of these scenarios provide good backup coverage. Option 1. Use SVN with a local, file based repository. Store your repository in the sync folder with one of the online "cloud" based storage drives. Create your checked out local copies from the repository on the USB drive. Pros: Repository will automatically sync to the cloud so it will be available on both locations will full history. All of your in-progress work will be on the USB which you can pop in anywhere, even on a third computer. You can work totally disconnected and still have full history available. Less urgency with checking in. Cons: You have to tote the USB. All in progress work is at risk if you lose the USB before checkin. You would always want to sync to the cloud after checkins and before switching locations. Option 2. Use SVN with a local, file based repository. Store your repository in the sync folder with one of the online "cloud" based storage drives. Create your checked out local copies from the repository on a different,sibling folder in the sync folder. Pros: Repository will automatically sync to the cloud so it will be available on both locations will full history. Working copies will automatically sync to the cloud so it will be available on both locations. You can work totally disconnected and still have full history available. No USB to worry about. Cons: You would always want to sync (push) to the cloud after ANY work is performed. You would always want to sync (pull) from the cloud when switching machines to ensure you have the latest in progress work. Option 3. Use SVN with a local, file based repository. Store your repository in the sync folder with one of the online "cloud" based storage drives. Create your checked out local copies from the repository on the devices harddrive. Cons: You will have different versions of in-progress work on the 2 computers that you are switching between. Probably a kill point for this technique Option 4. Use SVN with a local, file based repository. Store the repository on a USB drive via its mount letter. Create your "checked out" local copies from the repository on the devices harddrive. Pros: Cons: You will have different versions of in-progress work on the 2 computers that you are switching between. Probably a kill point for this technique. You will want to perform full repository backups of the USB. Exposure is lost of all hist
-
The easiest way to do that (that I know of) would be to create a file-based repository with SVN and then run the server from the same device as the client. I've done that when evaluating SVN: back then I put the rpository on my local hard disk, but there's nothing stopping you from putting it on an USB stick.
Stefan_Lang wrote:
run the server
I wouldn't want to run a server at all.
-
git, becsue - distributed DVCS are addictive - git is the "lowes common denominator everyone agrees on". It's a pain to learn, and both the built-in and the 3rd party visualizations give me UX flinches. Other than that, it does most things right. DVCS gives you rollbacks on stereoids. But that's not the key: they can change how you work with source code.
FILETIME to time_t
| FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchypeterchen wrote:
can change how you work with source code
I see that as a bad thing.
-
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
I was in a very similar situation, and I ended up using the free SVN hosting here: https://www.assembla.com/[^] That, with TortoiseSVN, makes for an easy time of everything. There are dozens of other sites that do similar stuff, so you're welcome to look around, I just liked their simplicity. The basics of SVN are covered nicely (maybe a little too well for a beginner, but not bad) here: http://svnbook.red-bean.com/[^] Skimming through it should give you enough of an overview to get started. I deleted and recreated my first project's repository and started from scratch a few times before I got the hang of it, but it didn't take long before I had it set up right.
-
You sound very similar to me and it took me a long time to finally get round to using version control. Let me just say this - it is completely worth it. It is not so much about being able to roll back (which is very handy nonetheless), but it forces you to think about what you are doing and to break your coding down into small bite-size chunks which in the long run is very beneficial. I think we can break your post down into two very simple statements: I need to synchronise my files between multiple PCs. I which to use simple version control (commits and rollbacks). For the first statement I would highly recommend DropBox. I use it between the 3 different PCs I tend to use and even on my iPhone. It is the most stable file synchronisation tool I have seen and is free up to a certain size (2GB last time I looked). Now you have your files synchronised, you could use any version control system you liked. For the second statement I would recommend msysgit (Git for Windows) with TortoiseGit to make it simpler. TortoiseGit gives you a right-click context menu so you do not need to learn any command line functions. It is not built into VS, but all you have to do is keep a windows explorer view of your project folder open so you can jump in there and run some git commands when required. It also gives you very clear icons of the status of all of your directories and files (committed, modified, added, etc.). This was the best article on Git I have read: http://nvie.com/posts/a-successful-git-branching-model/[^] Now it does talk about branching a lot (which you may not want to do at first - you may change your mind after reading it), but it also has the clearest diagrams showing how git works. Hopefully this will help your get your head round how it all fits together. TL;DR I recommend TortoiseGit with DropBox.
doc_net wrote:
break your coding down into small bite-size chunks
Hear! Hear! In my opinion, that is the most important thing for teams of developers to do. One of the greatest benefits is that it reduces the need for multiple developers to modify the same file at the same time, thereby reducing conflicts and merges. Having a great merge process is good, but avoiding merges is better. This is why C# (and VB.net) should have had
partial
class
es from the beginning. -
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
I STRONGLY recommend using SVN. And here are a few reasons why: 1 - You don't need to master the SVN server application, with TortoiseSVN[^], the client application, you can generate the repository database on your file storage. It's very simple to do it (using the familiar windows explorer right click popup menu, aka shell extension). A simple search will get you started on this if you don't figure it out on your own. 2 - With TortoiseSVN you can make simple commits and updates on your machines very easily, again using shell extensions. Making it very convenient and it has visual indicators of the state of your files, all integrated into Windows Explorer. 3 - SVN is powerful, and TortoiseSVN takes advantage of that. If you ever end up having more complex version control requirements, you'd simply need to start using all options you can ignore now. 4 - You don't remember the changes you made on a document, spreadsheet or source file? No problem, TortoiseSVN makes it very easy to compare the versions side by side, with visual hints for several file formats. So basically you have a powerful tool, with a short learning curve. It's very helpful even if you don't require all of its power. You never know when you gonna need it, and when you do, you will already be acquainted to it.
To alcohol! The cause of, and solution to, all of life's problems - Homer Simpson ---- Our heads are round so our thoughts can change direction - Francis Picabia
-
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
I have recently started using Git for my source control needs. It's fast and doesn't require running a dedicated server. When working with multiple locations/laptops, you can setup a central repository on a shared network drive that you can publish your changes to, and then pull from there on the other computer. It keeps everything in sync. It doesn't integrate with VS Express, but the command line and GUI work fantastically well. Git has a lot of powerful features that I don't use (yet). But it does the job for simple projects as well. It's worth the steep learning curve.
-
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
For up to two developer (or 1 developer using 2 PCs), you can use PureCM (More if you buy a licence): http://www.purecm.com/[^] It could work at 2 locations provide that the server is always running. For basic operations it works well. And since you are using VS Express, you won't be affected by some of the minor problem with the plug in. The main weakness is when multiple operations are done on the same file (move file, rename file, edit, delete...). To avoid problem, it is best to do multiple submits (check-ins) and status refreshing when doing heterogeneous operations on a single file.
Philippe Mori
-
(I couldn't find a better forum for this q, hope it's not out of place) I am a hobbyist just having fun trying to do things that seem interesting, so I have a range of small projects. I work on two laptops at two locations and use a network location at both locations for file storage (network drive at work and a NAS at home) for backup reasons. So, to work on one project I end up shuffling updates back and forth on a USB stick or having to crank up the work laptop at home and connect via VPN just to pull the files. I'd like to be able to use something like a VCS to manage this, recognising (and liking) the extra benefit of being able to rollback to previous versions etc. (fallen foul of this once or twice already). I haven't used SVN, GIT, Bazaar etc. before so I'm not at all familiar (yet) with using them - though I'm happy with the general concept of version control, just not as applied to software development nor doing so via the VCS used in software development. Clearly my preference is for something really simple that does the two jobs I described quickly and easily - (a) make it easy to work on two different devices at two different locations without shuttling USB sticks back and forth and (b) rollbacks. If it has other features then that's great but not if they come at a significant cost in complexity. So, is there anything you could recommend? Or do I need to make some compromises? (Using VS Express so cannot install AddIns but can add menu commands via the External Tools functionality). Thanks, Mike
Mercurial, with BitBucket for private, centralised hosting...or just copy your repo onto Dropbox... Nicer client experience than git (IMO), both on the command-line and GUIs (Tortoise HG in explorer, plus the THG executable supplied with Tortoise to give a GUI client). Mercurial extensions are worth exploring - I use various ones to enable history editing, interacting with Subversion and Git and other capabilities. Setting up a Mercurial server on Windows is pretty easy - there are supplied scripts for working with a web server (FCGI or WSGI), but on an ad-hoc basis,
hg serve
lets you share repositories...Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p CodeProject MVP for 2010 - who'd'a thunk it!