Author Topic: The insane stress of not using svn.  (Read 2779 times)

Offline Tridus

  • Master Member
  • *****
  • Posts: 1,305
  • I'm going to do what I do best: lecture her!
Re: The insane stress of not using svn.
« Reply #15 on: September 15, 2016, 10:23:17 PM »
Making copies of the code is a really inefficient way to handle it
Yes, yes it is.  But when you don't know what you're doing, you do what comes to mind first. :D

That is what I used to do as well, back when I was first designing the code that eventually turned into Shattered Haven which eventually turned into AI War 1.0.  That was circa 2002 in DirectDraw7, making Mario clones.  It was the year after that that I was introduced to Visual Sourcesafe, which is a travesty of source control from Microsoft.  Used that for a couple of years, maybe two at most, then a former coworker introduced me to svn.

I know someone who still uses Sourcesafe. Our Microsoft rep cringed and begged them to stop. It's that bad.

Offline Clasmir

  • Newbie Mark III
  • *
  • Posts: 25
Re: The insane stress of not using svn.
« Reply #16 on: September 15, 2016, 10:46:25 PM »
How are you protecting your local SVN? Volume is on a Raid 1 volume? Shadow copy? Enterprise level backups?

Offline kasnavada

  • Hero Member Mark II
  • *****
  • Posts: 911
Re: The insane stress of not using svn.
« Reply #17 on: September 16, 2016, 02:26:40 AM »
What are the actual use cases for rebasing? I've never had to use it, and I used git for a hackathon project with 3 of my friends. The hardest part was merge conflicts, but a good IDE takes care of those for you.

(This reflects my experience of working, possibly, you've had others).

On SVN, basically when everyone commits, everyone else merges what others commit. Multiple people generally work on the same branch. Translated into "industry", for example, making an house, that would mean that every day you download the house and that multiple parts of the house gets "updated", you've got 50% of a window, next day 60% of a window... and so on. Problem with this approach is "merging" when multiple people try to do work on the same stuff, for example, putting water pipes into walls. You end up with 40% of the pipe in a 50% wall, both are inherently merged into one another.

On Git, you're supposed to take every dev into its own branch. That means that I'm working on the pipes, for example, and another guy does the wall. Let's say I finish the pipes before the wall are. I install them. Then the guy that does the walls finishes. He rebases his wall into the house, and the wall is done. Then, the rebasing tries to install my pipes. If there is conflict between both, then a wall / pipe merge is there.

However, both the pipe, wall, and (hypothetical) merge are still there. If later, you need to add protection to the pipes, you can remove the pipes, add the protection, and put the pipes back. Same idea if I want to replace the pipe.


On SVN, all is merged, so way more difficult to rework.


When comparing IT to industry, I find that it reinvents the wheel, most of the time.

Offline Mánagarmr

  • Core Member Mark V
  • *****
  • Posts: 4,272
  • if (isInRange(target)) { kill(target); }
Re: The insane stress of not using svn.
« Reply #18 on: September 16, 2016, 02:58:57 AM »
ITT: Greek and latin. (Not a coder)
Click here to get started with Mantis for Suggestions and Bug Reports.

Thank you for contributing to making the game better!

Offline barryvm

  • Jr. Member Mark II
  • **
  • Posts: 87
Re: The insane stress of not using svn.
« Reply #19 on: September 16, 2016, 07:27:50 AM »
What are the actual use cases for rebasing? I've never had to use it, and I used git for a hackathon project with 3 of my friends. The hardest part was merge conflicts, but a good IDE takes care of those for you.

Usually it goes like this:

If you want to add a feature or modify a specific feature that has low coupling with other code (e.g. you modify the implementation but not the interface) you will do a merge with the master branch after testing the feature and running automatic tests.

If you modify a piece of code that implies a lot of changes in many different places it is better pull and then rebase which will replay your changes on the master branch. Another difference is that a merge will be done on the master as a single commit while a rebase will be handled as a replay of all your commits so you can choose to partially roll back changes.

Offline x4000

  • Chris Park, Arcen Games Founder and Lead Designer
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,161
Re: The insane stress of not using svn.
« Reply #20 on: September 16, 2016, 09:34:54 AM »
I can see the appeal of Git when there's a radically different workflow, yeah.  I've never worked in that fashion with a team, however.  Instead there's always been "you work in the bathroom today, I'll be in the kitchen" and so on.  When we need to merge on overlapping files, then the conflicts are small and frequent (when they happen at all) rather than big and tough to untangle.  Because of the linear nature of how we evolve savegame files in particular, that can be really useful.

Quite often we do commits without doing updates, because I don't need the other stuff right now, etc.  It's entirely possible and reasonable to have all the various parts of your working copy on different revisions, and just update later in the day.

--

Regarding protection of my local svn, I use BackBlaze to protect all my stuff locally ($5 a month, are you joking?  I have 800 GB up there.).  So generally when it comes to backups for Arcen stuff, we have:

1. Copies on multiple machines.
2. Backups in backblaze from my local machine.
3. Our copy on repositoryhosting.
4. Their backups.

Developers that lose stuff because of theft or hardware failure or whatever baffle me.

---

By the by, when you're forcing yourself to document everything, you should be doing that in the svn logs anyway. ;)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Aklyon

  • Core Member
  • *****
  • Posts: 2,089
Re: The insane stress of not using svn.
« Reply #21 on: September 16, 2016, 09:37:19 AM »
Huzzah for multiple backups!

Offline x4000

  • Chris Park, Arcen Games Founder and Lead Designer
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,161
Re: The insane stress of not using svn.
« Reply #22 on: September 16, 2016, 09:41:38 AM »
Indeed.  I was IT before I was a coder. :)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Vyndicu

  • Sr. Member
  • ****
  • Posts: 319
Re: The insane stress of not using svn.
« Reply #23 on: September 17, 2016, 10:32:03 AM »
While reading a little bit about other experience of git/tortuisegit.

It reminds me of my time with git/tortuisegit in a short term job last year and it was weird trying to figure out how to merging/correct codes. Nevermind trying to figure where a code that was already wrote actually. The team I worked on had a coder that was sorta forgetful... He thought he already commit one portion of the code to the master branch. Only to find out it wasn't there and actually only lived on a single machine that had not been committed to the master branch.

Heh a repository ONLY works if you actually upload to it you know?!

That aside. I definitely grok where you are coming from.

Offline tadrinth

  • Sr. Member Mark III
  • ****
  • Posts: 438
Re: The insane stress of not using svn.
« Reply #24 on: September 17, 2016, 01:50:16 PM »
Github just updated their interface for doing code reviews on pull requests and it's reeeeally pleasant to use now.  Assuming you need that sort of thing. 


Offline Elestan

  • Full Member Mark II
  • ***
  • Posts: 157
Re: The insane stress of not using svn.
« Reply #25 on: September 20, 2016, 12:33:29 AM »
I'll put in a plug for Perforce.  My company's been using it for over a decade for 10M+ LOC products with hundreds of developers, and it's rock solid reliable, and has a very easy-to-use GUI if you want to use one.  At least at one point, it was free for teams of less than 10 users.

Offline x4000

  • Chris Park, Arcen Games Founder and Lead Designer
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,161
Re: The insane stress of not using svn.
« Reply #26 on: September 20, 2016, 10:33:35 AM »
I had looked into them and was interested in them more than Git, but since we have binary files we need to version instead of just code files, it gets costly fast if I'm not mistaken.  Hosting it ourselves would be one option, but I don't like having our source control on our own servers that host the website, since that's a front-line for potential hackers, etc (having been hacked before, I don't like storing code stuff on web servers).  Overall right now we have about 20GB of data, which tends to exceed just about every plan, and they can get pretty expensive if they aren't built around that sort of thing.  Gets frustrating for sure.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Elestan

  • Full Member Mark II
  • ***
  • Posts: 157
Re: The insane stress of not using svn.
« Reply #27 on: September 20, 2016, 11:21:01 AM »
I had looked into them and was interested in them more than Git, but since we have binary files we need to version instead of just code files, it gets costly fast if I'm not mistaken.  Hosting it ourselves would be one option, but I don't like having our source control on our own servers that host the website, since that's a front-line for potential hackers, etc (having been hacked before, I don't like storing code stuff on web servers).  Overall right now we have about 20GB of data, which tends to exceed just about every plan, and they can get pretty expensive if they aren't built around that sort of thing.  Gets frustrating for sure.

Perhaps I'm just old-school, but I'd never let an external site host my non-open source code.  Plus 20GB is a lot to be externally hosted, but it's peanuts when terabyte drives are the norm.  I'd build a Linux fileserver, put Perforce on it, put it behind your firewall, and run OpenVPN to let any offsite developers tunnel through.  If you want some storage redundancy, get a Synology NAS.  Perforce will store that amount of binaries without a problem, though I'd probably segregate them from the rest of your source for organizational reasons.

Offline x4000

  • Chris Park, Arcen Games Founder and Lead Designer
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,161
Re: The insane stress of not using svn.
« Reply #28 on: September 20, 2016, 11:31:30 AM »
We don't have an office, and running a constant VPN to my home gets to be quite a problem -- I started out doing that back a long while ago.

In terms of other sites having our non open source code, I'm not exactly too worried about that given that you can reverse engineer our dlls anyhow.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!