views:

243

answers:

12

Hello,

My team is small, only two programmers.We both share one source ,but we live in different places.The problem is that Meanwhile I make changes on our project,the other team worker makes changes as well.It's very hard to write down every change,at least for us. When we decide we've made an important change,we contact each other sending the whole project's source. This is not good,because:

  1. The files sent from one do not contain the changes that the other worker has been working on meanwhile.
  2. We host the source on free servers,thus makes it possible for other to see the files.It will be VERY much better if only few(those that are changed) files are being uploaded rather than the whole project.

My question: Are there any tools that could make our lives easier?

Thanks in advance!

EDIT: We use Delphi 2009.

+6  A: 
  • subversion
  • git
  • cvs
  • ...

[edit] Maybe this article will help: http://en.wikipedia.org/wiki/Source_Code_Management. Pesonally i use subversion only, but git and csv are other popular tools. There are a few more (mercurial, SourceSafe,...?) Google for "SCM".

lajuette
You mean cvs, not csv, right?
Suppressingfire
That's correct. Thank you... =)
lajuette
+3  A: 

Try trac. It is a very ideal solution for small development group. http://trac.edgewall.org/

stanleyxu2005
+11  A: 

I too personally use Subversion combined with a program called tortoise (found here http://tortoisesvn.net/downloads) which helps in easy download/upload code to your project. It is really helpful as the person I work on some of my projects with lives 3,000 miles away.

Bactos
+1  A: 

Source control, definitely. I use the free Jedi VCS (http://jedivcs.sourceforge.net/) and like it a lot.

MarkF
+1  A: 

Have a look at Kiln. Free for two developers and integrates perfectly with FogBugz

Uwe Raabe
+1  A: 

There are online services where developers can create Subversion repositories for shared access.

  • springloops offers a free online Subversion hosting plan for up to three active projects and 100 MB (no limit on the number of developers)

  • ProjectLocker offers free Subversion and Git hosting for up to 5 users and 500 MB storage

For issue tracking I recommend FogBugz, this online service offers a free Students and Startups Edition (two developers). It includes a wiki, a discussion forum and a place for end users to post bugs manually, by email or using an API.

mjustin
+5  A: 

I recommend you use one of the already recommended source control solutions but in addition Beyond Compare is an excellent tool for comparing delphi source code files.

LachlanG
+2  A: 

I second (or third) the suggestions for Subversion and TortoiseSVN. I also recommend BeyondCompare, for reconciling things so that you can get to a state where Subversion will actually help. You should also agree to and adopt coding standards, ideally based on the Object Pascal Style Guide.

If you are working on different feature sets, you will probably want to consider having your own branches, from a common "trunk", which you will both merge into. That way you can commit your changes to your own branch every day, and then reconcile periodically.

And you'll need a bug tracker, such as FogBugz or Mantis.

Not directly to the OP but in general, as you add new developers, you will want to consider using a formalized code review process with a tool such as SmartBear's Code Collaborator or the open-source ReviewBoard. Both of which faciliate the review process. Code Collaborator, in particular, has a really nice workflow built into it, along with the great (near) real-time interaction.

Chris Thornton
Although the Delphi IDE doesn't integrate with Subversion, I've found this handy trick to add some hooks into TortoiseSVN into the Delphi Tools menu: http://delphi.wikia.com/wiki/Adding_TortoiseSVN_to_the_Tools_menu I only use the Diff and Log (the last two examples on that page) but found that I'm happier without the $SAVE or $SAVEALL. If I want to save, I'll do it before firing off the command. Anyway, this is very handy to be able to get a diff/log of the file in the editor.
Chris Thornton
I've used this both with D2005 and D2009, and it works the same for each.
Chris Thornton
A: 

I'm using the JEDI VCS for version control, it works nice and it's well integrated into the IDE. when looking for an VCS system one needs to make sure it properly supports one's personal work style. For example Subversion doesn't support me well enough because it doesn't like how I don't group my shared units in actual libraries. I don't want to be bothered with the concept of libraries and library versions for a unit that changes once every week! JEDI on the other hand has weaker support for project versions but that's not something I care about since I never needed to check out a full previous release.

As for "issue tracking" I'm using BugZilla. For me it is full-featured (as it includes web access and email integration). It's clearly scalable enough to handle whatever you throw at it as it's being used for some fairly large open source projects. Configuration had been super-easy for me: I downloaded a VmWare Virtual Appliance containing BugZilla!

I also trialed FogBugz but I find it expensive. I'd need to buy licensing for everyone using it, not just our 4 programmers but also our 20+ support stuff! Sure it's nice but I'm not ready to pay $4000 for a 20-user stand-alone license. Why? Becuase we've got BugZilla for free...

Cosmin Prund
A: 

Take a look at Elementool. There are several ALM and dev tools including document manangement, file sharing and issue tracking. There's also a free 30 day trial on all tools.

Beth
A: 

Take a look at Elementool. There are several ALM and dev tools including document manangement, file sharing and issue tracking. There's also a free 30 day trial on all tools.

Beth
A: 

I would start with some form of source control system (many mentioned above), and then to ensure that the code that is checked in is buildable, a Continous Integration system - CruiseControl.NET for example. This can be used to call MSBuild and this in turn can build and run DUnit tests that ensure the stability of the code.

Mmarquee