ExpressionEngine CMS
Open, Free, Amazing

Thread

This is an archived forum and the content is probably no longer relevant, but is provided here for posterity.

The active forums are here.

Subversion and whatnots

September 24, 2009 8:50am

Subscribe [6]
  • #1 / Sep 24, 2009 8:50am

    kurucu

    99 posts

    Not being a professional developer, I have had no real need to properly use source control until recently. With my previous projects, backing up many times was a sufficient form of control, but my latest undertaking is both complex and important.

    I have read about different systems, I understand the theory and I know why I need and want to use a config control system. However, following the tutorials and guidelines seems to be a step removed from doing the actual process. As if I missed some big thing I should have learnt on the way. It’s like someone understanding forum software and, not having been on the planet for 10 years, somehow missed out in learning BB code.

    I’m very familiar with the command line, with a variety of linux principles, with computer technologies in general. But I still seem to have a massive hole in my knowledge which means as soon as I endeavour to try out these systems, I end up with undeletable directories, my source code scattered all over the place, and less control than I had copying the project manually every day.

    So. Given that (for now) I am the sole developer on this system, what would be your suggestions for a suitably simple, but reliable, version control system?

    I have few requirements, but the systems available to me are as follows:
    - My Surpass Hosting account (standard Shared Hosting)
    - My Mac (Intel, and used for pretty much all development)
    - An always-on G3 Mac with dual-redundant terabyte storage, specifically for leaving backups on.
    - A Dell laptop with Windows 7.

  • #2 / Sep 24, 2009 8:52am

    kurucu

    99 posts

    Yuk, replying to myself but:
    I have used SourceForge in the past. I regularly use a system called DOORS which provides the configuration control for the type of engineering I do.

  • #3 / Sep 24, 2009 6:59pm

    Pascal Kriete

    2589 posts

    Git. It’s completely decentralized (read: local) and works great for one person as well as huge projects (linux kernel is a biggie).

    If you have no version control background, I would start with the git parable, which explains version control and the ideas behind git in layman’s terms.

    Then check out Github, which is a popular place to host public repositories. They have a large amount of learning resources. And last, but not least - there’s the totally free progit book.

    That should be a good start.  Once you’re into it, I would also suggest grabbing GitX, which shows your previous progress in a nicer way than the terminal can.

  • #4 / Sep 26, 2009 3:25am

    leovinci

    2 posts

    Well I have been using subversion for a while. And It has made my life easier. Although I have come across the name ‘Git’ and their site while googling on subversion I haven’t used it yet. I straight went for subversion as i was familiar with it before. Subversion will require some technical know how and it may take some time to get used to with it. Big names like wordpress, apache, kde are using it.

    I have installed it in my remote host and keep my repository there and use working copy to work locally. You can install it in your local windows/unix local machine too if you don bother about working with some other remote developers.

    Here’s a link with very detail on subversion:
    http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.basic.repository

  • #5 / Sep 26, 2009 6:51am

    cahva

    662 posts

    Heres a vote for Bazaar. Its easier to setup than git or svn as you dont need actual dedicated server software running anywhere(althought you can if you want). To use it remote all you need is a remote server that you can connect through ftp, sftp, ssh etc.

  • #6 / Sep 27, 2009 3:06am

    mikeyhell

    81 posts

    I’ve used both SVN an GIT for many projects and have played around w/ mercurial.  I much prefer GIT for many reasons but mainly ease of use.  It’s very simple to learn and teach, and is in my opinion more powerful than subversion.  If you’ve only got a couple of projects or just want to test out both, github(git only) and unfuddle(git,svn) have free memberships that will let you get your feet wet.  The only thing that I don’t much like about GIT and SVN to a degree is that support for editors is not the greatest.  I do a majority of work in eclipse and find it easier to just use command line to manage them.  SVN w/ eclipse is marginally better than the eclipse Git support.

    If you plan to run your own server I would recommend GIT, it’s really easy to setup ... and in particular I would recommend indefero - it’s excellent for managing repos and users for those repos securely.

  • #7 / Sep 29, 2009 4:08pm

    kurucu

    99 posts

    I typed a long reply earlier and it failed to post (the work proxy seems to play havoc with this forum). The summary of it was this:

    I read all your comments and gave SVN a shot, just because it seemed to have more users and documentation floating around. With a few blogs, I got a local server set up on my computer as well as a client and repository. I managed to get a working directory going and then imported my code, and commited it.

    Then, abandoning the command line, I found a tool call svnX that offers a straight-forward, although a little rough around the edges, gui client to SVN, which allows me to confirm that I’m not messing too many things up.

    My editor, Coda, connects to and uses the system with great ease. In fact, all seems to be working nicely.

    My thoughts at this stage are:
    - Not too much has changed as I thought in the world of version control, the basics are still the same
    - Things like branching and merging still elude/scare me
    - SVN on the command line is, like MySQL, not so much competence in bash, but another language to learn. I’ll take that slowly (especially with Coda doing most of it for me)
    - SVN is very flexible and powerful (as GIT seems to be also). The problem is that with this large amount of rope with which to tie knots, I may well hang myself or get pulled overboard as the rope wraps around my leg, cheap-comedy style.

    I’ve bookmarked all your links and suggestions for further reading and research. Thanks for all the ideas and tips!

  • #8 / Sep 30, 2009 9:06am

    AgentPhoenix

    137 posts

    The other thing to look in to if you want a rock-solid Mac SVN client is Versions. I’ve been using it since it came out and I love it. It makes SVN so easy. I wish there was a similar client for Git as I’ve been looking to switch my projects over, but alas, I haven’t found one as good as Versions.

  • #9 / Sep 30, 2009 6:58pm

    Knitter

    18 posts

    Branching/tagging is nothing more than creating a copy of some, or all, of your code. Imagine your development as one straight line, what in SVN you can see called trunk, if you need to create a parallel line of development, if you’re creating a big new feature and would like to maintain it separated from the main development line, but still able to join the two lines together, you can create a branch. To the server, branching is nothing more that a copy of your files, internally it’s not really a copy, but still, we can look at it that way.

    After issuing the branch command, you’ll have two development lines that you can control, to some extent, individually. One thing to notice is that, after making a branch, the SVN client will not switch to that branch automatically, your working copy will still be pointing at the trunk, you need to switch to the new branch to start working on it.

    If your branch was created to test a feature, or develop something that you latter want to incorporate in the main development line, you’ll marge the two lines into one again. Merging can offer a few challenges, depending on the differences between the two lines of development. Though I, personally, never had any problems, when branching is something done frequently it can became cumbersome.

    I use branching almost only to create support for a given version, for example, if I release version 1 of the product, I’ll make a branch and a tag, the tag will allow me to have an exact, and easy to identify, copy of the release, the branch will allow me to give support, solving any bugs, without interfering with the main development.

    A tag is the same as a branch, to the server, there is no knowledge of “tags” and “branches”, they are only concepts that we use to organize the code. To the server a branch is a copy, a tag is exactly the same, another copy. Even the usual repository structure of branches, tags and trunk is nothing more than a user convention, there is nothing in SVN that forces you to use such conventions.

    Some clients will have an option for branching and tagging, the SVN CLI client only has one “copy” command.

    As you can see, or at least I tried to show, branching is an easy concept to grasp 😊

    Regards,

    Knitter

  • #10 / Oct 01, 2009 4:16am

    Crimp

    320 posts

    Cornerstone has just dropped 1.5. For the first time in years, I have actually been truly impressed and even a little excited by a software release (and that certainly includes you, Adobe). I have used this software almost every single day since 1.0. Recommended.

    http://www.zennaware.com/

  • #11 / Oct 01, 2009 4:46am

    leovinci

    2 posts

    Sometimes people get confused with branch and tag things and start considering subversion as complicated wrongly. Branching and tagging is not a necessity but rather a concept to make development easy and sustainable. Wordpress or many other projects use branching/tagging to support their older versions of software.

    Thanks Knitter for the post. Your explanation was nice and easy to comprehend. I guess everyone will find it helpful 😊

  • #12 / Oct 06, 2009 3:14pm

    kurucu

    99 posts

    Fantastic, thanks Knitter. That’s a superb introduction. I think it’s one of those things that is hard to see until the reason for it is clear, and you’ve presented both sides very clearly. I’ve a few changes to my base code that I want to make, so I might give this a try, now that the concept is there. Perhaps you could drop that into a wiki article?

    Crimp, I took a look at Cornerstone and on paper their product looks very good. Exactly how I’d expect this to be done on a Mac. I didn’t read it anywhere, but I assume the command line tools are still available? Anyway, £30 seems a nice investment for hassle-free version control, although it seems to get steep quickly. I found a similar open-source version (sf.net: macsvnserver), but it is flakey by the developers admission (still beta, although it sounds like Alpha might be more appropriate).

  • #13 / Oct 06, 2009 6:35pm

    Crimp

    320 posts

    Why doesn’t Cornerstone use the copy of Subversion which came with my Mac?
    Mac OS X 10.5 Leopard and 10.6 Snow Leopard include the Subversion command-line tools (svn and
    svnadmin) but does not include the libraries required by Cornerstone. In addition, Mac OS X 10.4 Tiger
    doesn’t include Subversion at all. The simplest solution (and the one which ensures consistency across
    versions of Mac OS X) is for Cornerstone to include its own version of Subversion.
    This has the added benefit of allowing us to include the latest and greatest version of Subversion with
    our application without you having to worry about upgrading your Mac OS X installation.

    Can I use the version of Subversion which comes with Cornerstone?
    No. Cornerstone doesn’t use the Subversion command-line tools and therefore doesn’t contain them.
    Instead, Cornerstone uses the same libraries used by Subversion’s tools, enabling the tightest possible
    integration. The downside? If you need to use Subversion’s command-line tools then you will need to either be
    running Mac OS X 10.5 Leopard or 10.6 Snow Leopard. You will need to install Subversion yourself on
    10.4 Tiger.

    It is good - and not just on paper. Prior to the release of Cornerstone (which coincided with Versions) I used the CLI and svnX. Never looked back. Another handy use of something like Cornerstone is to keep a “Public” folder of repos for external OS code that you use in your projects. This allows you to keep track of updates and changes right next to your own code. I keep, for example, repos for both CI and jQuery in this folder. To me, Cornerstone has become much more than a Subversion client - it is a “live” organizational tool for all development. Yet another tip is that it also works for graphics. If you tweak an icon and are unhappy about the changes, roll back instead of going back to toggle layers and Save for Web again. For better or worse, this process even comes with multiple undos…

  • #14 / Oct 07, 2009 7:32pm

    richfearless

    34 posts

    After reading a few posts in this thread i decided to give-git-a-go, so i did, and i managed to upload my project to my *private* repository and put the git-bash client to sync in with my developers progress using a forked repository.

    Now i submitted my developers changes (on github) along with mine and happy with my master sourcecode. But now my source code differs to my developers because i made a few changes to the the main repository code & he is still running his fork-version of my project without the new changes i “git push origin master"ed to the main repository.

    Im going to stop my ranting and hope this makes sense, i dont mind explaining further if you dont catch my drift.

.(JavaScript must be enabled to view this email address)

ExpressionEngine News!

#eecms, #events, #releases