Choosing VCS for Single Developer, Small Projects, Two PC's, Two Locations
-
Then explain Subversion, et al.
-
I know how the thread started seems like I was saying he couldn't use source control at all. My original reply should have been more clear, but was limited to source control solutions that tried to integrate with VS. My apologies.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak:thumbsup:
-
I know how the thread started seems like I was saying he couldn't use source control at all. My original reply should have been more clear, but was limited to source control solutions that tried to integrate with VS. My apologies.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak:laugh:
-
Fair Question. Three reasons: 1. He's a developer with two locations already 2. It's the future 3. It's not just branching An external site like github can act as both sync point and backup. Now, normally you would start every session with a fetch, and finish it with a push. However, life isn't always so forgiving. Having no internet access to fetch, or having to leave without time to push, you can still work decently and integrate distinct branches through rebasing later. In my myopic view of the world, DVCS are the future. Their only downside is the learning curve. Ubiquitous internet access enables distributed development, and we know that - set up correctly - it's no less efficient than a cubicle mosh pit. DVCS deals with the connection problems. That makes it a decent plus if you join a team or find a coding buddy next town.
On the "It's not just branching" I am walking out on a limp here. My experiences with subversion were back when it was "VSS without the stigma"*. Do I need branches? My attitude went from "branch if you need" to "branch if it helps". The effort (in planning, remembering, considering, merging) becomes trivial. The kicker, though, is that logically you don't work with revisions anymore, but with changes: Branches don't "own" code anymore, they are just containers for different aggregations of functionality. Functionality can can be moved around and regrouped, bug fixes copied to another branch, "Work In Progress" and incomplete ideas are not just "safely stored", but can be kept close to your main branch. Being able to reorder and group commits before they are published solves for me a conflict between "commit offen for easy undo" and "publish a clean, readable history." It also acts as a small "self code review" of my last batch of work. Does a solo developer need a DVCS? No. I freely admit: getting started with git hurt me a lot - luckily I had someone holding my hand (though cp & stackoverflow can give you necessary answers reasonably quickly). However, OP is in a perfect situation to learn tools of the trade - not just what's the minimum necessary to swing by. *) slight exaggeration for artistic purposes. Maybe SVN now allows similar - I honestly can't tell. Even then, the other two poins kind of make it up
Fair enough.
peterchen wrote:
I am walking out on a limp here.
I suspect you meant 'limb'. Or did you mean 'limping out on a limb'? ;P
-
Yes, I was commenting on the general benefits of smaller files as mentioned in the post to which I was responding.
I totally agree on favoring smaller files. I just wondered about the reference to developer teams. Small files are just as sensible for small teams and single developers as they are for big teams with many developers. I just don't see the correlation you implied.
-
What?! :confused:
X| :rose::cool::suss::~ :| :-O :rolleyes: :omg: :confused::mad:what illa adhu boat ! ok va he he he he :laugh: :) :) :) :-D :-D :) ;) ;P :^) :( :sigh: :doh: :-\ :zzz:
-
I totally agree on favoring smaller files. I just wondered about the reference to developer teams. Small files are just as sensible for small teams and single developers as they are for big teams with many developers. I just don't see the correlation you implied.
Yes, and they are even more important for large teams.
-
OK, slightly confused - does that answer assume I am trying to integrate whatever I end up using with VS Express? If so I think I get that, since it isn't designed to work with extensions then I can imagine the licence restrictions refer to not doing so (not having read all 9x10^6 pages). But...if I was happy to not have IDE integration but just be able, when I've finished a coding session, to push the changed files to an online repository (be it a specific VCS repository or otherwise, like GitHub for example) then what would my options be? Thanks, Mike
Mercurial and Tortoisehg for the win! It is an easier to use equivalent to git. You may also want to take a look at Kiln which is built on Mercurial and adds some gimmicks like a wiki and a ticket system. I went for a clean Mercurial install on my own server, but I came pretty close to using their service instead. Fossil is also pretty cool if you want to want to explore alternatives...
-
Fair enough.
peterchen wrote:
I am walking out on a limp here.
I suspect you meant 'limb'. Or did you mean 'limping out on a limb'? ;P
Stefan_Lang wrote:
I suspect you meant 'limb'. Or did you mean 'limping out on a limb'? ;-P
Thanks for the correction! I wondered which one it would be, but was to lazy to google it. I finally reasoned, we always go out on a limb.
FILETIME to time_t
| FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy -
(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 the server: Visual SVN Easy to set up and use. Standard edition is free. For the client: Tortoise SVN One of the best free SVN clients. I use this setup to transfer projects from my office desktop to my laptop. The SVN server resides on a RAID 5 fileserver.