Version Control - Advice needed

Some of us love those electrons just a little too much
Ddrak
Save a Koala, deport an Australian
Posts: 17516
Joined: Thu Jan 02, 2003 3:00 pm
Location: Straya mate!
Contact:

Re: Version Control - Advice needed

Post by Ddrak »

Freecare Spiritwise wrote:So there's no multiple locks? Does it show the locks similar to how source safe shows you your checked out files in red?
No, at least not in explorer. Locks are bad in any case - the merging is actually very good and there really shouldn't be cases where multiple devs are actually changing the same line of code (and if there are you've got other communication issues that source control won't fix).

The copy/modify/merge paradigm is very, very flexible and once you've used it a bit you'll start wondering how you ever dealt with the other way. While you can use locks, I strongly advise against it for code.
I can see the wisdom in how Subversion does it but still, it's nice to know who's working on which files. Oh well, I can live with that.
Just make them check in more often. ;)
So ok, every file in the project is writable then? It'll be interesting to see how the Ankh plugin works then, since I thought that visual studio's version control integration used the "checkout" paradigm that source safe uses, or does Ankh simulate that?
It works pretty well - tells you when things are modified and lets you just do a checkin from the solution explorer. The "pending checkins" page works well if you ever want a canonical list of what's changed and what hasn't.
Getting the guys and gals to think a little differently from source safe and migrating some projects over to the new system in such as way that's not disruptive to the troops.
Yep - that will take some work, but it's not too bad. If you just get everyone to think that they all have everything checked out all the time, and checking in is all they need to do then it becomes a little more natural.
If I move the repository off site then the performance multiplies for me but slows down for everyone in the office since they're using source safe over the LAN. I guess just switching to Subversion should be good enough since the T1 gets saturated, times out the VPN and hoses source safe.
Remember it only hits the repository on checkin and checkout/update. Everything else (diffs, showing the icons in explorer, reverting to the original, adding, deleting, etc.) are all local operations on the working copy and so never hit the server. In addition, all communications to the server are deltas and not full files so you'll find things are more than likely going to end up a LOT faster than sourcesafe. In addition remember that subversion is true client/server and completely transactional (ACID) so any sort of error in comms with the server doesn't result in a hosed database (no more analyze jobs!). At worst it messes up your local working copy and you just have to run a "cleanup" on it to get it back in working condition (no work loss). It's also a LOT more tolerant of slow connections - we've had people checking in and out over 64k links without any issues.

The transaction client/server behavior alone makes it a no-brainer for management to accept.

Dd
Image
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

Source safe has such good performance over the LAN that I don't think anyone can tell that it's not true client server. And besides, to most of these COBOL guys (including the boss), client/server is where everyone runs something across the network.

So there's only 2 other people at the company that can fully understand the benefit of true client/server.

I guess that means it's my job to educate them though, and honestly if I'm the only one to see/understand the benefit then it's probably worth it to the company. Either way, even if I don't get "permission" to make the switch then I'm going to do it for the projects I'm working on and the other folks will need to install Tortoise ;)
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

Quick question about Tortoise if anyone knows the answer:

There's an option to save your login credentials but once you enter them then that's it. If you type them in wrong or want to use a different login, I can't find a way to "unsave" those credentials.

I have Tigris/Tortoise installed on a test network and it's badass. But my other team mates are absolutely swamped and I think they would shank me if I switched everything over right now, so I'm probably going to start migrating very slowly. For the couple of people I REALLY want to switch, I'm going to have to wait a week or two

I figure for projects that have been migrated, I'll leave them checked out in source safe so people will get the hint lol.

I was going to switch over the large production claims system I'm currently working on, but I remember back to last year when I had a stroke, so if I have to leave the Earth unexpectedly then I'd rather someone else at the company know how to get at my projects, so unfortunately I can't start moving everything over today like I wanted to do.
User avatar
Taxious
Rum Guzzler
Posts: 5056
Joined: Fri Apr 18, 2003 10:16 am
Location: Denver, CO

Re: Version Control - Advice needed

Post by Taxious »

Google wrote:Tortoise SVN | Settings | Saved Data | Authentication Data | Clear

That will clear the stored information, and you will be prompted for it the next time it's needed.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

Thanks. That Google guy is pretty smart (and versatile!)
Ddrak
Save a Koala, deport an Australian
Posts: 17516
Joined: Thu Jan 02, 2003 3:00 pm
Location: Straya mate!
Contact:

Re: Version Control - Advice needed

Post by Ddrak »

Note that there are migration tools around the web that will import your entire SourceSafe history into Subversion.

Dd
Image
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

Oooh nice, thanks. I thought I was going have to give the history up.
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

Source safe has pissed me off for the last time. Even though I'm super swamped and clients are arguing over who gets my time because there's not enough of me to go around, I'm taking a full day (or however long it takes) and switching my development over to Subversion for the projects I'm working on daily, and I'm just going to fumble through it. Fake it 'till you make it, right?

The server is setup and the hole is punched in the firewall and I'm accessing my shiny new SVN repository in Orange, CA from Spokane, WA !!!

Before I start in on my own projects, I'm putting a few of my co-worker's projects under SVN to let them get a feel for it and decide when/if they want to switch. I figure it'll be helpfull for them to see their familiar projects under SVN instead of VSS. I'm not going to cram it down anyone's throat but I'm going to strongly suggest it and periodically nudge everyone. The president also switched our office connection to 3.0 Mb instead of 1.5 so hopefully that will help out too. WTF is up with corporate internet? My home connection gets a solid 15 Mb speed test and I'm on the lowest residential tier.

So far I'm using the Tigris server with the Tortoise client but I'll probably play with Ankh once I'm more comfortable with Tortoise.

It's going great so far, and thanks to all the usual suspects for all your help /bow.

EDIT: Oh, and I decided not to try to migrate all the version history from VSS. From what I've been reading it looks like a hassle and on the odd chance I need an older version of something I can just go back into VSS and grab it, since for the forseeable future we're going to run VSS in parallel with SVN.
Ddrak
Save a Koala, deport an Australian
Posts: 17516
Joined: Thu Jan 02, 2003 3:00 pm
Location: Straya mate!
Contact:

Re: Version Control - Advice needed

Post by Ddrak »

All sounds good. I'd recommend just installing Ankh even if you use Tortoise to do everything anyway. No harm in having it there.

Dd
Image
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

Definitely. Right now I'm just looking at Tortoise as the baseline since not everyone uses Visual Studio. That and I want to have Tortoise mastered before move on to another client.
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

I just now moved my large insurance claims system over to subversion. It's what I'm working with every day and there's only a couple other people working with it on and off, so it's a good first project to play with under subversion.

It took a while to convince the president. He said "but you JUST said we should be using source safe" and I countered with "uh, that was almost 7 years ago, and back then it was a good choice - now, not so much." We debated it and we all asked around, and in the end there was really just one good choice for us - subversion.

The email has been sent out with a brief explanation of how to work with Tortoise and now it's a done deal!

A big-big thanks to DD, Tax and Bahd for all their help. In the words of the Gunslinger, thankee sai !
Ddrak
Save a Koala, deport an Australian
Posts: 17516
Joined: Thu Jan 02, 2003 3:00 pm
Location: Straya mate!
Contact:

Re: Version Control - Advice needed

Post by Ddrak »

Glad it's all working out.

Dd
Image
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

Wow, 2 full days working with it and I'm in love. I figured I would just fumble through as I learned it, but there's been no fumbling. Everything I've tried to do with Tortoise so far has been intuitive. Add, delete, revert, update, selective commit - it's all been cake, and this sucker is fast too!

I probably wasted about an hour a day jerking around with source safe.

One thing that concerns me though: This global revision counter. It's going to get huge isn't it? Y'all must have some big counters. I picture someday looking at revision 769876978698769867968769 and it just seems kinda weird. Oh well.
User avatar
Taxious
Rum Guzzler
Posts: 5056
Joined: Fri Apr 18, 2003 10:16 am
Location: Denver, CO

Re: Version Control - Advice needed

Post by Taxious »

Freecare Spiritwise wrote:One thing that concerns me though: This global revision counter. It's going to get huge isn't it? Y'all must have some big counters. I picture someday looking at revision 769876978698769867968769 and it just seems kinda weird. Oh well.
I think there are some (archiving + start a new repository) options? At least that's what has been done at this place, they are on revision 10.4k but have a whole backup of previous major releases.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
User avatar
Taxious
Rum Guzzler
Posts: 5056
Joined: Fri Apr 18, 2003 10:16 am
Location: Denver, CO

Re: Version Control - Advice needed

Post by Taxious »

How would you guys handle this situation?

- About 6 developers (team A) are working on the trunk of a project which releases every 3 weeks.
- A couple other developers (team B) are working on branches of the truck which release ever 1 week.

A new branch is created from the trunk when (A) releases so that (B) can work on that to update their code and release every week until (A) releases again. When (A) releases again, the new trunk is created and all the changes from the new release must be merged in with the changes from the previous branch that (B) has been working on for the last week.

The problem is that that merge process becomes a big giant mess with tree conflicts when either (A) adds something to the new (B) branch or when (B) deletes/moves a file on the new branch that the trunk then tries to merge in.

I'm not sure if it's possible, but it'd be cool to have some kind of functionality so that when (A) commits anything that could effect (B), it somehow mirrors those changes to both the trunk and the new branch that (B) is working on. Or if (B) deletes something in the new branch, it also deletes on the trunk automatically.

Any ideas as to how to set this up with subversion/tortoise? Any other ideas on a better way to get around these hundreds of conflicts?
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

What's the project?
What the heck is team B doing and why are they off in their own little world?

Wow, sounds like a bloody hassle for both teams, especially team A.

Just off the top of my head it sounds like either both teams should be be physically merged into one team, or team B should merge their work less often, like maybe month end - they're holding team A back.

EDIT: Which team are you on? lol.
User avatar
Taxious
Rum Guzzler
Posts: 5056
Joined: Fri Apr 18, 2003 10:16 am
Location: Denver, CO

Re: Version Control - Advice needed

Post by Taxious »

I just got thrown into this mess and I'm on (B) - lol. Actually it's not a hassle for (A) at all since (B) is the one that has to merge all their changes into the new branch.

They are separated because (B) just works on the public facing website, which according to the boss, must be updated every week. (A) works on services and more deep level stuff that (B) depends on. So out of the 3 week release cycle that (A) works on, there is only 1 week where (B) is up to date with (A) - otherwise (B) uses the older version of (A) to do work (since that's the current version that is live on production).
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

Ahh I understand now. I thought A was having to merge in B's changes once a week.

But it still sounds more like a management issue than a version control issue. Both teams should be on the same cycle maybe? Put A on the shorter cycle? I've always been a fan of shorter iterations.

I R teh subversion n00b but let me roll it around in my head from a general version control standpoint. Seems like you're destined for pain though because of your project requirements.
User avatar
Taxious
Rum Guzzler
Posts: 5056
Joined: Fri Apr 18, 2003 10:16 am
Location: Denver, CO

Re: Version Control - Advice needed

Post by Taxious »

I'm not sure that's something that is going to change - the different release cycles. I guess they split things apart because the marketing team was pissed that the public site took 3 weeks to change. I think (A) is on a 3 week cycle so they have a chance to implement bigger/better changes to the system.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Freecare Spiritwise
Grand Pontificator
Posts: 3015
Joined: Thu Mar 13, 2003 5:35 pm

Re: Version Control - Advice needed

Post by Freecare Spiritwise »

The requirements make sense I guess /shrug.

As long as management understands that they're wasting a certain amount of development effort (which it sounds they probably do) then I guess there's not much to be done other than to optimize subversion. Sounds like DD is your man for that.

We're not doing any branching because frankly with our team of senior citizens we're just lucky to get them to use version control in the first place. The COBOL guys used Novell's feature of keeping older versions of files that you delete and using that as some bastardized version control. Then we switched to all Windows servers and the head COBOL guy purchased some software that did the same thing with Windows.

I was fucking livid. "So your using the Windows recycle bin to store your source code and manage your projects, WTF, Chuck?" It's the most retarded thing I've heard in my entire career, and what's worse is that I suspect some of the guys are still secretly doing that. It all goes back to people being scared to leave their comfort zone.

...so compared to using the Windows Recycle Bin, our minimal implemenation of Subversion is light years ahead.
Post Reply