Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Version control without internet? (http://www.chiefdelphi.com/forums/showthread.php?t=86893)

RoboMaster 18-09-2010 23:42

Version control without internet?
 
I'm wondering if there's any options out there for version control/collaboration but doesn't require an internet connection (ex. not SVN). Our programming computer can't really be hooked up to the internet when we're working at school.

Currently, sometimes one of us brings their own computer and we work on different things at the same time. Then we copy the part of the code to be worked on onto the other computer and replace it when the work is done. (We use LabVIEW so copying and replacing subVIs is easy). Plus, we plan to work at home more this year. For backups, we copy the whole LabVIEW project into a folder and put that on our team's external hard drive.

But of course it's always nice to have a good versioning software or method. Does anyone know of anything out there? Thanks!

biojae 19-09-2010 00:26

Re: Version control without internet?
 
Quote:

Originally Posted by RoboMaster (Post 974573)
I'm wondering if there's any options out there for version control/collaboration but doesn't require an internet connection (ex. not SVN). Our programming computer can't really be hooked up to the internet when we're working at school.

Your SVN repository does not have to be on the internet, you could use your programming laptop (or any other school computer, for that matter) as the SVN server.

ajd 19-09-2010 00:31

Re: Version control without internet?
 
Look up darcs, git, mercurial (hg), bazaar (bzr). They are all distributed version control systems that work in a way that doesn't require an internet connection

codedr 19-09-2010 21:14

Re: Version control without internet?
 
svnadmin create /path/to/your/repo

then the svn url will be
file:///path/to/your/repo

you can then add/commit and checkout from the local
file path.

keehun 19-09-2010 21:52

Re: Version control without internet?
 
Git (and other distributed VC) do not need internet. Also, as noted, SVN does not need internet. You just push and pull from each computer in the network. You can designate one computer as the "master" and it becomes a "server"

keehun

Joe Ross 19-09-2010 22:22

Re: Version control without internet?
 
You might find some of the ideas in the Portable Revision Control Server (using Subversion) thread useful.

RoboMaster 21-09-2010 19:37

Re: Version control without internet?
 
Wow, thanks for all these ideas! I'm looking into Bazaar right now, but I haven't checked out some of these other ideas yet.

Does anyone know of any manual methods or protocols that are an option in case we (or anyone reading this thread) don't use any software? Is there a whitepaper or document out there that describes it?

Thanks!!

timothyb89 23-09-2010 03:02

Re: Version control without internet?
 
Quote:

Originally Posted by RoboMaster (Post 974788)
Wow, thanks for all these ideas! I'm looking into Bazaar right now, but I haven't checked out some of these other ideas yet.

Does anyone know of any manual methods or protocols that are an option in case we (or anyone reading this thread) don't use any software? Is there a whitepaper or document out there that describes it?

Thanks!!

You can always use something like rsync to keep everything between machines up-to-date, but you'll run into some nasty conflicts if two people edit one file at the same time. I'm sure there's a few FTP-based syncing programs out there if that's more your style.

For offline use you really want a distributed VCS. I'd personally recommend git, but others certainly work. If you have a LAN and want something simple, then subversion works fine. For both there's nice Windows GUI clients (TortiseGit and TortiseSVN, respectively) which help to simplify things a ton. Plus, most IDEs have plugins for it, which are great if you use Java or C++.

Nibbles 02-01-2011 21:03

Re: Version control without internet?
 
I would highly recommend Git, it keeps your entire history with the files and makes synchronizing with other computers really easy (and takes up less disk space than a single SVN checkout, go figure that one out).

I wrote up a document on FRC-specific tasks using Git: https://docs.google.com/View?id=dcz67k4q_42f7hzcwdg
Some parts might be out of date but anyone who wants to contribute, PM me so I can add you as an editor. Alternatively maybe someone wants to post it to FIRSTwiki.

iblis432 02-01-2011 21:19

Re: Version control without internet?
 
What I did last year was at the beginning of each day or after a major change i used 7zip to compress the entire project and name it xx_xx_xx_vers_y

where xx_xx_xx was the date and n was the version of it that day. so the first one of that day would be 1, the second 2, so on and so forth. I found that useful because 7zip compresses and decompresses easily, has shell integration, and there's no real setup to it. You just take a break for 1 minute and zip it all, then if you need it back, instead of going through any menus or anything you just right click the file and go to 7zip>decompress to /xx_xx_xx_vers_n

Anyway, that's what I did, never bothered with any version software.

demosthenes2k8 02-01-2011 21:31

Re: Version control without internet?
 
iblis, that works...adequately...for one person, or maybe even two, but with a larger team || a more complex project, it's not always the way to go. Source Control allows you to track multiple design paths safely (person A is implementing feature X, person B is testing feature Y), as well as have safe, simple backups of your files. Especially if you need to jump back several times to fix a bug.
TL;DR: Use source control. It may seem to be more than needed, but it can save you at competition.

zbanks 02-01-2011 21:31

Re: Version control without internet?
 
As everyone has said, you don't need the internet for (almost) all VCSes. That being said, if you're unfamiliar with whatever system you are using, I'd highly recommend finding a nice GUI, since you won't be able to fallback to whichever site you'd normally use.

SVN is pretty well supported by IDEs, and you can run the server on the same machine. That being said, if you plan on developing radically different versions of code, or if you're developing on more than one computer, you probably want a distributed system.

Git and Mercurial (hg) are both relatively new, but awesome. They're pretty comparable feature-wise, especially at this level. Github is an amazing service, but really isn't too applicable for FRC, especially if you'll never/rarely be online.

Last I checked, hg has better Windows support, however. If you're working on Windows, which I assume you are, it may be enough to tip the scales.

I've also seen recommendations for darcs & bazaar, which are both great, but don't offer anything special that'd be applicable to this situation. Git & hg both have tons and tons of tutorials and guides available. Especially since I assume everyone is starting fresh, it makes sense to go with the most documented option.

Nibble's tutorial seems great, and would be a feasible way of working on it at school while being able to take it home (where you can then back it up on github & share it with your fellow teammates).

DtD 03-01-2011 06:45

Re: Version control without internet?
 
Our team uses Mercurial with great success. (I also use it for all of my personal projects and our team's internal website.)

Code:

E:
mkdir robotics2011_code
cd robotics2011_code
hg init
hg clone C:/Dev/Robotics/2011/

And that flash drive is now a "server"!

Or if you aren't too keen on the command line, you can use TortoiseHg.

Another awesome feature that Mercurial has (which git does not have) is "hg serv" which is basically a minimalistic web server that hosts and interface to your mercurial repo.


I can also say I've been happy with git, but it sometimes acts funny on Windows. It also likes to slow down after time if you don't manually garbage collect frequently.

Nibbles 03-01-2011 09:58

Re: Version control without internet?
 
Quote:

Originally Posted by DtD (Post 990332)
Another awesome feature that Mercurial has (which git does not have) is "hg serv" which is basically a minimalistic web server that hosts and interface to your mercurial repo.

Git has git instaweb, which uses gitweb which has been a part of the Git sources for a long time. There's also git-gui and gitk which is awesome, and installs with msysgit on Windows.

DtD 03-01-2011 14:39

Re: Version control without internet?
 
Sorry about that, there should be a "afaik" in there. Thanks! Good to know when I'm working with git-hosted OSS!


All times are GMT -5. The time now is 03:40.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi