Team Development offline - version-control

I want a version control system tool, but offline.Like I develop a project on my computer,and someone is working on a different part of this project on a different computer.Is there a tool that allows to me bring the project from different computer to mine and sync all the changes.
I would like to have all functionalities of a version control system like diff,rollback,commit
Please suggest a suitable tool.

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
http://git-scm.com
It can be used online or offline easily.

Almost all the version control tools on the market support these features: diff, rollback, commit, offline, etc. I list some tools here for your reference:
Open Source
Git
SVN
Commercial
SourceAnywhere (developed by the company I'm working for)
Microsoft Team Foundation Server

Related

Version control architecture for a large project with many dev groups

We are working on a very large portal project. We need a scalable source version control architecture such that, it should be scalable to many teams and possible incoming teams.
There will be common libraries and each group will work on different part of the system. At demo times, we need to integrate these parts and have the product testable, demoable and so on.
Do you recommend some guidelines or architectures?
How would you approach this problem?
In terms of version control system, we are using TFS, if it helps.
Sounds to me you would be better off with a DVCS (Distributed Version Control System) like Git, rather than TFS which has a centralised version control system.
TFS now integrated with Git, here is a good blog post which provides you with most of the details you would need - http://blogs.msdn.com/b/visualstudioalm/archive/2013/01/30/getting-started-with-git-in-visual-studio-and-team-foundation-service.aspx
Add an enterprise level Git Repository Management tool like Atlassian Stash and life will be sweet - http://www.atlassian.com/software/stash/overview
From a TFS server side...setup only 1 team project. This will be key. The other key is to have the server running SQL Server 2012 with SP1 (there's tons of perf improvements in SQL that will help you scale TFS).

Free Version Control and Issue Tracking System [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
What are the most convenient, intuitive and easy to use Freeware Version ControlSystem and Issue Tracking system for home PC (without a LAN)?
Note that, GUIs are a must for both.
Install your own copy of Trac, it runs by default with SQLite so you won't need a database server (I guess the home computer doesn't have many resources).
For Version Control SVN will be just fine, if you use Windows try VisualSVN for a faster setup.
I recommend Redmine for issue tracking/project management, and Git for version control. Redmine supports most SCM:s like CVS, Subversion, Git, Darcs, Mercurial, and Bazaar.
Redmine features:
Multiple projects support
Flexible role based access control
Flexible issue tracking system
Gantt chart and calendar
News, documents & files management
Feeds & email notifications
Per project wiki
Per project forums
Time tracking
Custom fields for issues, time-entries, projects and users
SCM integration (SVN, CVS, Git, Mercurial, Bazaar and Darcs)
Issue creation via email
Multiple LDAP authentication support
User self-registration support
Multilanguage support
Multiple databases support
For extremely easy installation, Redmine can be installed using Bitnami, available for Windows, Mac and Linux. Bitnami will install all required dependencies for you and everything may be uninstalled just as easily.
Edit: For Windows, Subversion + TortoiseSVN is probably your best bet for version control.
There's a 100% always free hosted private bug tracker available at https://www.hostedredmine.com/
By using that you don't even have to worry about setting up, managing and backing up your own server.
You could use an online hosted version. Project Locker provide source control and issue tracking and have a free plan (up to 500MB). Beanstalk also do online source control (100MB).
You can use any of the free UI applications to access the source control repositories (such as TortoiseSVN, SmartSVN, etc..)
For version control I use Visual SVN which is a setup for a windows based user (takes care of all the install details of apache, bsd, etc.). It just works and is easy to use/manage. Then you need an SVN client - Tortoise is probably the best for it's windows explorer integration. This is free. If you want SVN integration in Visual Studio then you may want to splurge on a copy of Visual SVN for your client!
Also regarding version control don't underestimate the power of CodePlex or Google Code! As long as you don't mind people looking at your work (IE not for secret stuff) then this is a great resource that requires far less management on your part. Also great for distributed teams!
For bug and defect tracking you can't beat CounterSoft's Gemini product. This is a web based tool that allows you to track projects, bugs, call tickets, etc. Very nice for the professional consultant.
If you need something more robust for a bigger team and a team that is agile specific then take a look at VersionOne's products. Their first year of the basic package is free!
You can use SVN/CVS, which has loads of GUI utilities to back it up on almost every OS out there. It is rock stable.
For issue tracking bugzilla is just perfect for any level of expertise and it integrates well.
Web based interface is also pretty simple and intuitive.

Best practices for development with multiple machines and version control

I'm just getting into the practice of version control (I'd like to use Eclipse and SVN), and I'm not sure the best setup for my scenario.
I'm currently a lone developer and I have two computers (a work desktop and a home office laptop) that I like to use for development (mainly web-based stuff). I have access to a Linux-based and a Windows-based remote server, and I seem to always have files scattered between the two machines based on where I conduct the work.
Are there any instructions or best practices about how to set up a development environment so that when I sit down at either machine I have the same files to work with and the ability to utilize version control?
Some things I have used between my laptop/workstation/server.
If the paths are exposed create a local svn repository, and then use the network path to the repo from the second machine. Works well if you dont want to run a server but just use local files. My laptop and workstation have the same credentials, so pass through works great with the hidden paths '\machine\c$\etc'
I also like to use Unison for managing the files between my laptop and workstation. Its not versioning, and with date time hints it does rather well at 'which is newer'. Also, if you're the only one using both, conflicts are really low. I use this to manage my 'my documents' http://www.cis.upenn.edu/~bcpierce/unison/
Of course you can create an SVN server, and I have found Visual SVN to make this almost too easy. I started using this for my personal projects after the need to 'launch' to the server came up. Having the svn server on the remote server had a few benefits when it came to launching and working from home. (Or inviting other developers) http://visualsvn.com/server/
Just install SVN on one of your computers (preferably on the Linux server). I guess administrators will install SVN for you and create needed repositories.
Integration of SVN with Eclipse is really easy through plugin.
If you are new to source control (or even if you are not), reading Eric Sink's Source Code HOWTO will give a good introduction and expose you to some best practices.
I would consider a distributed version control system as well as Subversion. Even if you do go with Subversion in the end, it's good to understand all the options available to you. Personally, I'm a single developer and work in multiple locations, and have found the DVCS concept to work much better than SVN.
Git, Mercurial and Bazaar are three options. Here's a good video by Linux Torvalds which explains some of the conceptual differences.
I am implementing Bazaar as my source control solution for handling this scenario. I have used Subversion for years, but it simply does not really fit this distributed usage scenario. Bazaar does.

Offline source control

I'm about to start a project where programmers will be contributing from their homes (much like stackoverflow was built)
I want to use some centralized source control, but I don't want it to require the programmers to be online, and the server may come offline from time to time (as at first it'll probably be my desktop machine)
I think I remember Jeff talking about this in some podcast, but I don't remember which one.
Is there a source control tool that works perhaps asynchronically by e-mail?
Programmers could connect to download the latest version, and the checkin process would be sending files to an email account for example
Does such a thing exist?
EDIT: Sorry, I forgot to say that I'll be working with .NET (Visual Studio 2008)
It'd be great if it could be integrated into this environment... does GIT (suggested below) support that?
git is basically built with this scenario as one of the major requirements.
Others support it as well, they usually go under the name of "distributed version control system".
You're looking for a Distributed Revision Control, system such as Git, Bazaar, or Mercurial.
I personally like Bazaar because it has good windows support.
I think Mercurial may be the best choice in your case, as it seems to have a Visual studio plugin. It does have a web interface and ssh support, which are probably better options than email, but there is also an extension that allows patches via email.
You could use git for this purpose. It doesn't require access to a centralized server, but you can set one up if you want to. Git differentiates between commit and push/pull, so working offline works great. The git website has great documentation.
git and mercurial will both do this; they allow syncing via emailed patches. Other distributed source control software will probably also work.
Subversion is what Jeff was talking about in the podcast. You can buy VisualSVN for Visual Studio integration. svn works very well offline as you don't need to talk to the server unless you are checking stuff in, or getting stuff out.
Sourcegear vault has an add on that allows this
There's also a free SmartSVN tool for Subversion, which integrates with Windows shell (adding fancy icons that let you distinguish locally modified files from pristine etc).
I've used Subversion and SmartSVN when working from home as well as in the office, and I can only recommend it. Check its features here.

Lightweight source control

I am looking for a lightweight source control system for use on "hobby" projects with only one person (myself) working on the project. Does anyone have any suggestions? Ideally it should interface with Visual Studio either naively or through another plug-in, outside of that, anything that works would be nice to be replace Gmail as source control.
I use VisualSVN Server (free) and Tortoise SVN (free) for school, work, hobbies, everything. If you want Visual Studio integration, you can use Visual SVN ($49) or AnkhSVN (free).
You can use assembla.com to host your project. They offer subversion, git and mercurial hosting. I personally use their subversion hosting for a free and private one-man project. As an added bonus, you also get a wiki and a ticketing system. Which can help you manage your stuff.
And the best thing is that you don't have to setup your subversion server and it is hosted off-site.
It's really good for a free service.
Personnaly, i use TortoiseSVN as my client but it isn't integrated in visual studio.
For the integration, you can try VisualSVN (not free) or AnkhSVN (free)
Have a look at the Mercurial Project an open source distributed source control system. There is a tortise and an eclipse plugin but nothing for visual studio plugin that I know of.
you can see a demo on you tube . like GIT its one of a new breed of distributed source control systems, so no server setup required, and it has very fast HTTP based checkin's with advanced branching and merging facilities.
Git is very lightweight and is just as suitable for personal projects as it is for huge projects like the Linux kernel. There is lots of tutorial documentation available on its web site that will get you started. Example:
git init
git add .
git commit -m "my first commit!"
If you are keen on Visual Studio integration, I would probably recommend Subversion, as there are a number of plugins that may make your life easier. Also, TortoiseSVN is definitely worth installing.
Hobby or Serious project, SVN 1-Click Setup (download Svn1ClickSetup-1.3.3.exe) gives you all you need with ease :)
TortoiseSVN works great. You don't even need a Subversion server, you can create a local repository through the tool. Since it integrates right into Windows Explorer, it makes it easy to work with in a variety of scenarios. You also then have the option to work with remote Subversion servers or Team Foundation Servers (via SVNBridge).
I prefer distributed version control for personal projects, because they eliminate the need for a server. Mercurial is the one I try to use most of the time, but I've been hearing good things about git as well.
I can't comment on other source control software but after using VSS 6.0 , StarTeam, Vault and SVN I cannot rate SVN + Tortoise more highly. AnkhSVN is a free plug-in for Visual studio which I personally didn't warm to. Apparently Visual SVN is much better but costs money.
SVN with SmartSVN or tortoiseSVN ? not really all that lightweight, but good practice for the big bad world.
Pick your flavour of distributed version control. I like Mercurial, other folks swear by Git and Bazaar. There's no need to make a fake server to put a directory under version control, which, IMO, makes it very ideal for small projects.
I'm not sure if any of these have Visual Studio plugins, though.
If you have access to SQL Server, then SourceGear's Vault is free for a single user. If you want to go even further, Axosoft's OnTime issue tracking is also free for single user use. I use both at home (for free) and we also use both (licensed) at our company. Both integrate into Visual Studio, and OnTime also supports Vault integration.
I use Perforce at work and at home for hobby projects. It is easy enough to set up, and allows two users and five workspaces without having to pay for a license. Also has a Visual Studio integration plugin.
Lately I became a strong believer in Git and its interesting index pseudo repository. But if you do not need all the fancy rebase --interactive and stuff like content over file tracking - and as its Windows support is a weak point - Hg is a valid alternative. I am rather certain neither has a VS plug-in but with PoSH the command line is more fun anyway.
Thanks for all of the help so far, I have things up and running and right now I am working with Assembla as a Subversion server, TortoiseSVN for general Subversion access, and AnkhSVN for Visual Studio integration. Overall I am quite impressed with this particular configuration and I am already much more impressed with it than I have ever been with Visual Source Safe.
I have had a couple issues getting things up and running so I think it is best if I mention them in case anyone else ever runs into these problems -
AnkhSVN doesn't give any useful error messages if it can not connect to the server due to a proxy being in the way and it doesn't use any of the Internet Explorer proxy settings so you have to configure it yourself. At the time of this post (2008-08-20) that information is in C:\Documents and Settings[USERNAME]\Application Data\Subversion\servers
Assembla runs over HTTPS but shows the SVN URL as HTTP, you must be sure to change the HTTP to HTTPS yourself in the URLs or you get a "401 Not Implemented" error from TortoiseSVN and AnkhSVN.
For small and not-so-important project, Google Code Hosting is wonderful - it's Subversion, it's free and offers plenty of space.
I prefer Mercurial for my homebrewn projects. It's much easier than Git, and it works flawlessly under Windows.
i will never use SVN again for a personal project - ya its great compared to CVS, but isn't even in the same class as the modern breed of distributed version control systems. GIT has been mentioned already but a) it has shaky windows support b) complicated learning curve. I now use BZR which "just works".
bzr vs git
bzr in 5 minutes