topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Thursday December 12, 2024, 7:33 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Wanted: Version Control for non-software project for dummies  (Read 11920 times)

Ath

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 3,629
    • View Profile
    • Donate to Member
Wanted: Version Control for non-software project for dummies
« on: November 07, 2009, 12:04 PM »
Hi all,

I'm looking for a type of Version Control software, in the area of CVS, SVN, etc., for versioned centralized storage of Projects.

These projects are technical drawings of electrical installations, and are stored not as plain ascii-like files, but rather a set of database tables and extra configuration files, holding an entire project stored in it's own subdirectory.

The users are technical drawing engineers, that don't have too many computer experience, other than typing a letter or some documentation, but are mostly working with this technical drawing software.
This software doesn't have any project management functions available.

There is currently a project management tool, designed and programmed in-house in Delphi 5, but the programmer is no longer available (left the company), so maintenance is 'difficult'.
And now there's a new version of the Drawing software. That changed the structure of the project-files, added subdirectories to the project directory, and stored the project info in an xml-file instead of a plain ascii file, and then some.
So now I've been asked to 'have a look at it', for being busy with D5 for years, and I'm already nearly finished on the minimal updates to make it compatible with this new version of the drawing software (it's is going to be used ASAP, after updating this project management tool), and fixing some other odds and ends.

It's not this task I'm asking your help with, but rather on the added task of a full rewrite of this project management tool, in a more easily maintainable environment. It's not that Delphi is not good enough, it's more the fact that they don't have anyone available any longer, that can maintain the darn thing. And they do not seem to want to employ anyone who can. This would ofcourse be a new problem when, after a rewrite, the programmer (probably me) leaves the company (or didn't work there in the first place), or doesn't want to work on it, or whatever reason... so this is why I'm asking this here: to investigate if something similar is already available.

I'll write up a few requirements, based on current functionality:
  • Simple user interface
      There currently are 2 lists of projects, the left side showing all local projects (1 directory with a number of subdirectories) and right side all stored projects (in a central database). There are buttons to lock and unlock projects (another requirement) and, with enough privileges, remove projects from the server or the local directory, and filter the displayed projects using some criteria.
  • User management
      Users are to be classified in types, like Administrator, Engineer (working with all kind of projects), Viewer (just get and view, not lock or edit) and some inbetween types, like Engineer/Admin that can also unlock other users projects, or manage user accounts.
    Single Sign-on is an optional request, and could be based on LDAP or Active directory, and further integration would be nice, as network access is controlled using an AD.
  • Project handling
      Projects are to be handled on a file-set base, all files in the project need to be sent/gotten to/from the server, not just individual files.
  • Project locks
      Projects have to be locked, so the engineer working on it, is the only one allowed to put back his updates, and unlocked, and this usually is performed when 'getting' a project, but could be a separate step
  • Scheduled tasks
      Some scheduled tasks needs to take place (on the server-side); weekly checking for projects that are locked for long a time (30 days, 10 days) and sending the locking users an e-mail that they still have these project(s) locked, or if they haven't logged into the management tool for more than 90 days, daily all projects stored on the server are compared to the list of projects in the database, and updated (I don't know why that could be needed, but it's there now).
  • Database
      The current list of projects, stored in MySQL (3.x), needs to be transfered to MS-SQL2000 (not a typo  :-[), as that's what's also used for other applications, and this project management data wouldn't put that much extra burden on the server. I expect that the actual database would eventually migrate to MS-SQL2008, but there is other tailored software that uses the SQL2000 database, and that is not expected to be upgraded or replaced any time soon.
  • Development environment
      I've planned to re-develop all this in .NET 3.5 using WPF and WCF, and program it in C#. This leaves enough space for their own additional development in VB.NET or any other .NET supported language, might that be needed. Using a browser based UI should be possible, but is not a requirement, nor desired.

The simple UI requirement kicks out direct usage of CVS or SVN, as those UI's are way too complex and error-prone for the target audience, but there may be other SCM's (Source Code Management tools) that might fill this in; I don't have any experience with other SCM's beside CVS, SVN and PVCS Version Manager. I'd like to store the projects on the server-side in a real SCM, because of maturity and reliability, but would need a deeper insight on the API's to get that implemented. At least it seems do-able :).

Anyone having advice or questions is invited to respond, including flames on the chosen development environment (I'm not going to do it in C or C++, that's for sure) or database (it's a customer requirement).

It is eventually a (spare-time) job I'm charging money for, so if you feel this as an unfair request, please tell me, and I'll remove the entire thread, but the moral is that I'd rather not write anything that has been invented elsewhere already.

Thanks for any responses.


Ps: This is my first large post, so if I need to restructure, please point me in that direction.

Shades

  • Member
  • Joined in 2006
  • **
  • Posts: 2,939
    • View Profile
    • Donate to Member
Re: Wanted: Version Control for non-software project for dummies
« Reply #1 on: November 07, 2009, 01:51 PM »
Being not really familiar with the plethora of version control systems out there, I do know CVS and SVN.

From SVN I know that it (by default) stores repositories in a database and that later versions also have an option to do file-based storage. this got me thinking and maybe this link [codeproject.com] will prove useful. It seems someone made a script to store (parts of) a MS SQL 2000 database into SVN.

As you were saying, don't re-invent the wheel.

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Wanted: Version Control for non-software project for dummies
« Reply #2 on: November 07, 2009, 02:41 PM »
As you were saying, don't re-invent the wheel.
Amen to that!

I'm thinking around the lines of making a "friendly and targeted" front-end utilizing SVN as it's back-end system - either by issuing svn.exe commands, or by using the SVN API, and possibly with some "extra" code (ie, to get textual dumps of databases instead of storing them as binary files).
- carpe noctem

tinjaw

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,927
    • View Profile
    • Donate to Member
Re: Wanted: Version Control for non-software project for dummies
« Reply #3 on: November 07, 2009, 06:39 PM »
Based on what I read in your post, or can infer from it, I am going to recommend you look at using Microsoft Sharepoint. It has built-in version control at the level  you are looking for. It is .NET compatible and should be extendable with Delphi. There is also the types of permissions available that you have mentioned.

Ath

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 3,629
    • View Profile
    • Donate to Member
Re: Wanted: Version Control for non-software project for dummies
« Reply #4 on: November 08, 2009, 04:13 AM »
Guys,

Thanks for the responses so far, but I feel I need to clarify a few points.
  • I'm trying to manage Projects. These projects are sets of files, some of these files are databases of a format I don't know (yet) and have no intention of exporting to put in SCM; it's not worth the hassle.
    Also, I don't want to store the content of a SLQ2000 or MySQL database in the SCM, the DB is only used to have a quick and easy manageable list of projects. It takes far less time to produce a list of a DB, than to produce a list of the (hundreds) of projects from a directory on disk.
  • MS Sharepoint, allows a group of users to work on shared projects. That's close to the model I'm looking for, but leaves to much room for error, because of not (easily) getting all files local. And I don't want the user to have to package/expand a project in/from a zipfile by hand, again, too much room for error.
    I'm not sure Sharepoint has facilities for locking a project to a named user, but that is a requirement for this customer, with the same reason, only one person should work on (modify) a project, as the files can not be merged. And then there's the issue of licenses and server resources, this might turn out expensive but I'll investigate that a bit later this week.

I might go for the suggestion by f0dder, a front-end to SVN (or maybe tinjaw's suggestion of Sharepoint), and use the database for storage of the project attributes I need 'quickly' to present to the users. Guess that's the safest solution. Have to find something to keep the storage requirements for the repository as low as possible, because currently only the last 3 versions of a project are kept in storage, packaged in zipfiles, and older revisions are just discarded :-\, it originally was designed around 2000, when storage was much more expensive than today.

More suggestions are welcome, ofcourse :Thmbsup:

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Wanted: Version Control for non-software project for dummies
« Reply #5 on: November 08, 2009, 06:39 AM »
Stay away from SharePoint - relatively easy getting data into, but when(!) you want to move away from it again because it turned out to be a big tangled mess of FUBAR, well... good luck. (Perhaps we were just super unlucky at school, but that p.o.s system definitely didn't leave with me with impressions of SharePoint).

Have to find something to keep the storage requirements for the repository as low as possible, because currently only the last 3 versions of a project are kept in storage, packaged in zipfiles, and older revisions are just discarded :-\
SVN is pretty compact because it stores delta-sets rather than complete changes every time (this works for textfiles, not sure if it's implemented for binary files though - which is why I suggested that project database files could be converted to/from text if possible) :)
- carpe noctem

Ath

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 3,629
    • View Profile
    • Donate to Member
Re: Wanted: Version Control for non-software project for dummies
« Reply #6 on: November 08, 2009, 07:34 AM »
Checked out the faq of SVN in the meantime, and it seems they have indeed a good support for diffs of bin files, so storage requirements, unlike CVS, should be rather modest. I'm currently not sure they the customer wants to keep the entire history of changes, but it should appeal to them, imho.
The sharepoint 'thing' is what I would like to avoid; I really, really, really dislike it from the (little) use I had with it.

Guess the SVN, using the SharpSvn .NET library, is a very promising candidate now 8)
« Last Edit: November 10, 2009, 04:53 PM by Ath »

Ath

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 3,629
    • View Profile
    • Donate to Member
Re: Wanted: Version Control for non-software project for dummies
« Reply #7 on: November 10, 2009, 04:51 PM »
Hm, I've been looking around for an existing solution to the problem I posed above, but there does not seem to be an application that could solve it for me.
Guess I'll have to write it myself then, but it will be a nice project, and a good reason to finally do a major development project in VS2008/.NET 3.5 or even VS2010/.NET 4.0 8)
If possible, I'll post my progress and solution here, but can't make any promises, as it's most likely going to be closed source and maybe even closed anything.

Thanks for the advices so far, any suggestions are ofcourse welcome :)

JavaJones

  • Review 2.0 Designer
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,739
    • View Profile
    • Donate to Member
Re: Wanted: Version Control for non-software project for dummies
« Reply #8 on: November 10, 2009, 05:00 PM »
If such a thing really doesn't exist, it seems like a niche waiting to be filled! I know my office could use something like it. Hmm...

- Oshyan

Ath

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 3,629
    • View Profile
    • Donate to Member
Re: Wanted: Version Control for non-software project for dummies
« Reply #9 on: November 10, 2009, 05:06 PM »
Well, the 'closed anything' actually means it could be a commercial app without me having real control over it. I'm still negotiating with the customer, and ownership and rights are some of the subjects.  :-\

JavaJones

  • Review 2.0 Designer
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,739
    • View Profile
    • Donate to Member
Re: Wanted: Version Control for non-software project for dummies
« Reply #10 on: November 10, 2009, 06:12 PM »
Tell them if they make it flexible enough they could sell it. :D

- Oshyan