repository software ???

Discussion in 'Programmer's Corner' started by Mathematics!, Oct 2, 2011.

  1. Mathematics!

    Thread Starter Senior Member

    Jul 21, 2008
    1,022
    4
    I have setup SVN , CVS , and a few other repository servers.
    All of the time I setup a repository I need to download sometype of serverside software and all the client machines need the client side software.

    On the client side software I realize their is an option to use http , https , ssh ,...etc

    So I am wondering if I just create an ssh , http , or https server could I use it to be the repository instead of having to download the serverside repository server. (i.e just download apache , iis , openssh ,...etc )

    Or is the serverside repository software required so that it can interperate the commands that the clientside sends like clone ,import ,...etc

    Question 2
    If I setup up cvs repository and somebody is using a clientside program other then cvs like svn , clearcase ,...etc will they still beable to download/upload to the repo.

    Basically for every different type of repository (i.e cvs , svn , git , mercurial ,...etc) must each person have the same client side program to work with it. Or can an svn client work with a cvs repository , git work with svn ,...etc etc

    Or do you have to download clientside software for each of the different repositories types. Is their any software that can work with all the types of repositories making it so you don't have to download software for each type?
     
  2. ajm113

    Member

    Feb 19, 2011
    176
    5
    Well choosing software like that is ALL up to you, and with file handling software which I've written a few myself, one I just released was made to send files on a local network much easier. :)

    Anyways, it's all about what goals you have with them and how accessible you want it and you could even use both CVS and a http server if you really wanted. It's all about access ability and how secure you want to be. Heck FTP wouldn't be a bad option if you wanted flexibility with the public and your team mates, but FTP is kinda slow for me that is.

    The plus with something like GIT or a CVS it's a lot quicker, and the plus with http is that you can go to the file directly and just download it without having to download a client side app.

    About Question 2, I can't really say 100% I've used some clients before, but idk if they were running off different ports or not, but they might all be or not be compatible. I'm not one to talk much since I've haven't used these types of servers a lot, but most of the time when I want to release open source software's source code to the public, I just pack it in a zip file on a few hosting sites.
     
    Last edited: Oct 2, 2011
  3. someonesdad

    Senior Member

    Jul 7, 2009
    1,585
    141
    I didn't like CVS and SVN was only marginally better. After using ClearCase for 10-15 years at work and seeing it decay, I'm glad I switched to distributed. I use Mercurial and AFAIK there's no such thing as the server-side program -- everyone uses the Mercurial client. Ditto for bazaar and git. Of course, if I'm wrong, the shrinking violets on this forum will clam up and not say a word... :p

    I'm unaware of any client that accesses multiple VCS systems, but it wouldn't be that difficult to write one. I'd use wxPython...
     
  4. ajm113

    Member

    Feb 19, 2011
    176
    5
    wxPython for the win! That is a very extremely easy to use API, I would recommend anyone to use that as a beginner into the world of GUI programming or who needs a quick GUI. ;) Java isn't so bad ether, but which ever anyone prefers to write code on is always the best option.
     
  5. Mathematics!

    Thread Starter Senior Member

    Jul 21, 2008
    1,022
    4
    YA, for any distributive based version control (aka DVCS) their is only a client side program. But will the client side beable to access svn , git , cvs , clearcase ,....etc other VCS/DVCS or are the different VCS depended on specific version control based software.

    For example would a git client work with a mercurial client ?

    And you said it would be pretty easy to make a client that could handle many different VCS. (I would think that is true since you would just have to implement the commands like clone , import ,...etc but that is just connecting using sockets and throwing the commands )

    The reason why I ask this is linux coders have to use git but at work I have to use svn, or cvs.
    Over the years I felt like I had to install alot of different version control software depending on what the project was held on aka a cvs , svn , ...etc
    That is why I wanted a all in one easy way to download any project from any repository with out having to download repo software. Some repo software is properatery so in some cases you cann't even download the project even if you have a vaild user/password.

    Just wondering if somebody already made a universal tool that has the capability to access all the different (or many ) of the VCS/DVCS.
     
    Last edited: Oct 2, 2011
  6. someonesdad

    Senior Member

    Jul 7, 2009
    1,585
    141
    I'm unaware of such a tool. But it's no big deal to have a bunch of client software installed. When I was evaluating distributed VCS I had Hg, git, and bazaar installed side by side and just flipped between them. Once you've learned 5000 UNIX commands, another few hundred is no big deal... :p
     
  7. Mathematics!

    Thread Starter Senior Member

    Jul 21, 2008
    1,022
    4
    I guess I have another question for you.
    I have used cvs , svn (VCS) they usually use http , https, ftp , or ssh and the files have no special extension.

    What I am getting at is when I use git (DVCS) I have to issue
    git clone path_to_get_repo/filename.git

    What I am wondering is a few things what is the structure of a .git file?
    Why must you have this special file cvs , svn ,...etc don't use any special file just path_to_repo/project

    I never used any other DVCS other then git so I am wondering does mecurial Hg , or any other DVCS have a certain .mecurial extension.
    Maybe all DVCS have to have this special file/extension.

    Don't know since most of my repo experience has been with non distributive which I have not come across any special file extensions when downloading a repo with them. (other then the .cvsroot ,...etc files that come down after downloading a project but they are never used to download a project at the command line)

    I hope you are understanding what I am asking.
    It seems different when going to git to have to git clone path_repo/file.git instead of project.
    Curious if all DVCS have a special extension file ?
    And what this extension file like .git contains.

    Also I have to say someonesdad you seem to be the most knowledgeable repo person I have come across damn 15 years of clearcase wow. I thought that was the best version control. Everybody use to talk about it like it was.
    What do you think is the best VCS and DVCS of today ?
     
    Last edited: Oct 3, 2011
  8. someonesdad

    Senior Member

    Jul 7, 2009
    1,585
    141
    Oops, I lied -- 10 years of that was with ClearCase -- the other 5 was with a custom in-house network-based version of RCS (and I've forgotten the name of it now...). The ClearCase that I used (I used both NT-based clients and HP-UX/Linux clients) was pretty good, although it was getting a bit long in the tooth the last I used it in 2005. The company's site I worked on (this was a big US corporation) had made a huge investment in ClearCase and computing infrastructure because there were many hundreds of firmware engineers around the world working on a key product you've all heard of and most of you have used. Smaller companies simply wouldn't be able to afford that kind of investment.

    Please don't overrate my version control experience -- I'm just an experienced user. We had on-site experts and one of them was a local teacher who did research in version control systems. They were capable of doing some pretty sophisticated stuff.

    I can't tell you the structure of a particular file -- you can find that out by digging into the documentation or source code. Remember that when you clone a repository, you basically have the whole repository. That's a fundamental difference between DVCS and a central server system. I've not looked at Mercurial's files -- but I do know that cloning works, as (I believe I mentioned once) my repository and backup files got corrupted, but my customer's files were in good shape -- so I just replaced my repository with his. To me, this was a win of the DVCS architecture.

    All DVCS tools are going to need to create files when you clone a repository. The type/structure is up to the tool's designers. Again, just remember they have all the repository's information in them. My guess is they're probably a compressed form of the repository with some extra accounting/tracking information.

    As to what's the best, I have nowhere near enough experience to answer that question -- mainly because I've only used a small subset of the available tools. I'd say the best tool is decided by Juran's classic definition of quality: fitness for use. The best tool is one that meets your objectives and does so within your technical and business constraints. I do know that if I was managing a business that had to make strategic decisions about adopting and living with a VCS for a long time, I'd hire some really good experts and look at the question in a lot of detail. NOTHING (not even sex, money, or power) is more important to a software engineer than a good version control system. :p
     
  9. Mathematics!

    Thread Starter Senior Member

    Jul 21, 2008
    1,022
    4
    ok, I see curious have you worked with distruibutive version control systems alot or just the regular VCS (non-distributive).

    I know if you want to work on open source projects like linux , gnu ,...etc
    They used bitkeeper --->(now git) DVCS.

    But I am wondering for open source projects do they all use git.
    I have never came across an open source project that used mercurial , bazzar ,...etc ( that is why I never had the need to use other DVCS other then git when working on open source software)

    Wondering what percentage of open source software projects require something other then having git , cvs , or svn clients on your machine.
    never came across a project that I couldn't work with with out a git , cvs , or svn client other then maybe at work because it was properatory software. (but for open source git , svn , or cvs thats all I have need curious if you know of an open source project that need mecurial or some other version control software to work with it )

    And is everything moving towards DVCS since they are not centralized and mostly faster for larger projects?

    I have to say I like VCS svn , cvs centralized even though they say it's slower but it is great to have a centralized place to backup my software all in an organized fashion.
     
  10. someonesdad

    Senior Member

    Jul 7, 2009
    1,585
    141
    Excluding using ClearCase day-in/day-out for 10 years, I spent virtually all of my time over most of the last 20 years or so using RCS for my home projects. But I was sick of RCS' file-centric view, so I spent some time deciding on a newer VCS to switch to. The decision wasn't made lightly, but involved weeks of trying out the different tools. The final candidates were git, Mercurial, and Bazaar; I picked Mercurial because its Windows support via a GUI was the best of the lot. I could care less about GUIs because I'm at a command line all day, but I wanted a tool that people I work with could use and these folks are typically scientists and engineers, not programmers.

    There are gazillions of open source projects and I have no clue about which VCS is the most popular. If I had to guess, I'd say probably CVS or SVN. Note that google's open source stuff lets you pick SVN, git, or Mercurial. My advice is to ignore the popularity and focus on your needs and pick the best tool that meets your needs. Of course, this is a lot more work than just figuring out what's the most popular and using that.

    If CVS or SVN meet your needs, then by all means use them. I understand why you like the idea of having your stuff backed up on a server. However, that server still needs to be backed up, so logically there's no difference between using a DVCS and server-centric VCS. Either way, you can lose your shirt if you don't back things up.
     
Loading...