LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Sponsors
  • Mirrors
  • Logos
  • Contact us
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Wesley J. Landaker<wjl@i...>
    Date: Sat Apr 15 16:07:06 CEST 2006
    Subject: [oc] kindly convert opencores cvs repository to subversion (svn)
    Top
    On Friday 14 April 2006 10:30, Richard Tierney wrote:
    > I've been using subversion for a few months now; here's my 2c.

    I've been using subversion for years, and CVS for many *many* years. Here's
    some comments:

    > 1 - what it's really good for is moving and renaming directories and
    > files. This is a real pain in CVS. But, of course, this is only of any
    > use to the person who creates the repository in the first place; it's of
    > no use to people who just want to do occasional commits or updates.

    Actually, having support for directory moves helps people who do occasional
    commits and updates *a lot*. In CVS, if you move files, you either lose all
    the history behind them (because you did an delete+add), or you break all
    checked out working copies (because you moved a ,v file). In SVN, this
    doesn't happen: you just move the file or directory, then when people
    update or commit, everything is handled automatically.

    > 3 - versioning of metadata, properties, etc. - this is just pointless
    > busywork. If you just want to do keyword expansion and setting filenames
    > to be ignored, then CVS is *much* easier. I can't even think of anything
    > else I'd like to do with metadata.

    There are actually a number of wonderful things you can do with properties,
    but let's focus on keyword expansion. You can set up a SVN
    with 'auto-props' and it will automatically add your preferred set of
    keyword expansion parameters to e.g. VHDL and Verilog files. Also, SVN
    handles binary files automatically because of properties. Have you ever
    been bitten by forgetting CVS's -kb on a binary file? Not a concern in SVN.

    > 4 - svn doesn't do tagging; you implement it as a directory copy. This
    > is bad, bad, bad. Anybody can come along afterwards and mess up my tag;
    > you have to agree with other devlopers not to touch it.

    I'm not sure why you think this is bad; this makes working with tags and
    branches *so* much easier than it is in CVS.

    Also, this isn't really true: you can set up a simple commit hook (an
    example is included with the distribution) to prevent modifications to tag
    directories, or you can use simple per-directory authorization that is
    supported in both servers architectures to stop anyone but users you choose
    from making or modifying a tag. Both of these are very simple to do.

    > 5 - retrieving old revisions and comparing them - bad, bad. There's not
    > even a whitespace-ignore option on 'svn diff'. Actually, I suppose the
    > real problem here is emacs. With xemacs/CVS, I can easily extract any
    > two versions and do a graphical/ediff compare. There are 2 svn modes for
    > emacs, and they're primitive, unless I've missed something. 'svn status'
    > will let me ediff the head against the current file, but I haven't
    > been able to do anything else with it. This is the real killer; if I
    > can't fix this, I'm back to CVS.

    No true. svn diff has a --diff-cmd argument, that lets you use an external
    diff program, e.g. GNU diff or a graphical diff program. I do this all the
    time to get a whitespace-ignoring diff. You can set these up as defaults in
    your SVN client, so if it's something you do all the time, you don't have
    to type it. =)

    I use xemacs almost exclusively as an editor, but I don't use the CVS or SVN
    integration, so I can't comment on how good or bad it is.

    > 6 - svn ups the revision number on the entire repository for each
    > commit, so individual files may have version numbers which differ by
    > hundreds. You have to go back and cross-reference the history to do any
    > comparisons. On reflection, I think this is probably not good; I'd
    > prefer consecutive numbers on all files.

    I believe this is a good thing, it's just not what you're used to from CVS:

    To quote from: <attachment.pgp>

    "In CVS, revision numbers are per-file. This is because CVS stores its data
    in RCS files; each file has a corresponding RCS file in the repository, and
    the repository is roughly laid out according to the structure of your
    project tree.
    In Subversion, the repository looks like a single filesystem. Each commit
    results in an entirely new filesystem tree; in essence, the repository is
    an array of trees. Each of these trees is labeled with a single revision
    number. When someone talks about “revision 54”, they're talking about a
    particular tree (and indirectly, the way the filesystem looked after the
    54th commit)."

    > All the other features are basically just "so whats". It may have a
    > fancy client/server architecture, and there may be fancy underlying
    > databases, and commits may be truly atomic, and so on, but this doesn't
    > do much for me as a user.

    They may be features that you don't use or care about, but they aren't just
    bells and whistles. SVN was architected specifically to get around
    limitations of CVS. This applies to limitations CVS has when used in a
    large development environment with many concurrent users. CVS lack of
    atomic commits can be a nightmare in some situations.

    > I've never had a problem with a commit on CVS
    > messing up, but I've occasionally had commits fail on svn.

    I've had exactly the oppposite experience.

    > And, of course, svn and CVS both have the same flaw of allowing multiple
    > developers to work on the same file at the same time, relying on merging
    > to fix things afterwards. I guess this may be Ok for free software work, > but it's no good for professional use. This is not true, SVN supports locking as of version 1.2 (been out for quite a while). -- Wesley J. Landaker <attachment.pgp> OpenPGP FP: 4135 2A3B 4726 ACC5 9094 0097 F0A9 8A4C 4CD6 E3D2 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : attachment.pgp

    ReferenceAuthor
    [oc] kindly convert opencores cvs repository to subversion (svn)Richard Tierney

    Follow upAuthor
    [oc] kindly convert opencores cvs repository to subversion (svn)Jeremy Fillingim

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.