Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^3: Learning How to Use CVS for Personal Perl Coding Practices

by spiritway (Vicar)
on Nov 03, 2005 at 17:34 UTC ( [id://505456]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Learning How to Use CVS for Personal Perl Coding Practices
in thread Learning How to Use CVS for Personal Perl Coding Practices

Well, as I mentioned previously, I am a complete newbie with SCCS software. I tried CVS, Subversion, and Perforce. The only system I could get up and running, that had documentation I could understand, was Perforce. Those other systems may very well be better, but since I can't figure out how to make them go, they aren't useful to me. As for Perforce not being "free as in speech", I didn't consider that an issue. Since nothing I produce would depend on Perforce, it would not affect any licensing. I agree that if you're trying to keep your machine completely "free as in speech", Perforce would not be an appropriate choice. I'm not acquainted with the "Linux kernel Bitkeeper mess". That mess (if I knew about it) might have caused me to change my mind about using a closed-source product. The Perforce Server is free (as in beer), but sharply limited (2 users, 5 client workspaces).

As it turns out, however, I finally just wrote my own script to take care of the problem of version control, and it works well enough for me that I don't have to worry about any of these programs. It just tucks my files away into time-stamped directories, so that I can find them if needed. It's not pretty, but it does the job.

  • Comment on Re^3: Learning How to Use CVS for Personal Perl Coding Practices

Replies are listed 'Best First'.
Linux kernel Bitkeeper mess (OT)
by tirwhan (Abbot) on Nov 03, 2005 at 20:18 UTC

    In brief, the "Linux kernel Bitkeeper mess" was Linus Torvalds using a proprietary (but freely available, for some definitions of freely) SCM for the main tree of the Linux kernel. At some point the SCM vendor (decided|was forced) to declare he would no longer provide the system for free. Since the vendors had issues with other people developing software which interoperated with his system, kernel development was severely impaired while Linus wrote his own SCM and worked on getting the kernel tree and history imported into that in an useful way. It appears that the "mess" set kernel development back by about a month, which is considerable. Google for "linus mcvoy bitkeeper" and take a look at the lkml archives for more details on the sordid mess.


    Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian W. Kernighan
      That summary may have been too brief. You skipped the bit about Linus believing that Bitkeeper's advantages over other SCM systems saved him more than a year in the time that he did use it. So - even after the meltdown - Linus does not regret his decision to use Bitkeeper.

        True, and as long as he was still using it that was a valid argument of his. But it took him and a few others only a few weeks to code a replacement that everyone seems to be even happier with functionality-wise. So while it's clear that BK was a better fit than any of the other existing SCMs, I think I have to agree with the people on lkml who were saying it would have been better to put energies (or incentive) into developing a free alternative in the first place. Just think of all the developer time wasted on flame-wars ;-).

        Aside: without knowing either of them personally, I think that particular quote was given to save Larry McVoy (who's a friend of Linus AFAIK) some face.

        And the fact that Linus was happy with Bitkeeper doesn't change anything about the danger of keeping one's important data in a proprietary format which is only accessible through a proprietary product. Sure, one should always use the tool that best fits the job, but when part of the job description is "I want to be able to access my data any time in the future, regardless of what happens with a certain vendor/product", programs like Bitkeepet fail the spec.


        Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian W. Kernighan
      At some point the SCM vendor (decided|was forced) to declare he would no longer provide the system for free.
      You left out an important (to me) fact here: This was triggered because a member of Linus' team that was gung-ho "everything in the world should be open-source" guy wrote a reverse-engineering of the data format for BitKeeper, violating the agreement Linus had with Larry, even over Linus' persistent and deliberate advice to the contrary.

      So, part of the story is "even if you're an open-source zealot, follow the rules!"

      On the other hand, from lemons came lemonade. I'm strongly considering using Git on projects because of its nice distributed creativity model. (No, I can't seem to get SVK to work on my machines, and the rest of the stuff looks even further down the scale. Git compiles and installs trivially, except for the documentation stuff.)

      -- Randal L. Schwartz, Perl hacker
      Be sure to read my standard disclaimer if this is a reply.


      update: yes, sorry, I misheard the story. Not a "member of his team", but perhaps someone who should have understood the consequences of his act.

        This wasn't a member of Linus's "team", but Andrew Trigell, the creator of Samba and rsync (who is also currently employed by OSDL, as is Linus, but AFAIK they don't actually work together).

        That's why I put the "|" between "decided" and "was forced". IMO it is debatable how wrong it was of Tridge to try and access the BK data without going through the BK format. After all, the approach he used was exactly the same he used for creating Samba, and not too many people call him an unreasonable open-source zealot for that. There was no disassembly or illegal looking at forbidden data going on here, he was simply trying out stuff with telnet. Should reverse-engineering a network protocol be considered wrong? I don't think you'd get any court conviction on that and neither do I think it's morally wrong.

        The Bitkeeper "free" license at the time also contained a number of questionable clauses, like basically forbidding anybody who used BK to even think about working on any other SCM. That's just ludicrous IMO. Regardless of that, Tridge wasn't bound by the license because he was not using BK in his reverse engineering, but I think it shows another example of what's wrong with Larry McVoy's mental model of the world.

        So I think the fiasco was caused more by McVoy's attitude[1] than by any actions of Tridge's. The issue isn't clear-cut however, hence the "or" sign :-). I tried to make my reply short[2] because it's OT to this forum, and therefore I necessarily left details out. The same thing that applies to tilly's comment also applies here though: exactly why the situation blew up is irrelevant to the danger closed formats represent. McVoy's company could have gone out of business, or he could have been ousted and the new board decided to stop giving free lunches to the open source hippies, and the result would have been exactly the same.

        [1] And before someone gets a wrong impression I'd also like to say that in contrast to this affair Larry McVoy has done more for free software than most people in the world (and certainly more than me), he's a fine software engineer and IMO noone should hold a grudge against him for all this. I just think he was wrong on a lot of points here and wish he had a good public-relations person to talk to before sending emails to some people.

        [2] Since there does seem to be some interest in a fair and/or more detailed account of the story I'd be happy to write it down more extensively, please /msg me if you feel this would be of value either on PM or off.

        Update:I've just realised that the stricken-out part is not true.


        Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian W. Kernighan
        Actually, that might not be entirely accurate, as it was Tridge, Samba author, who reverse engineered the data format of BitKeeper for interoperability.

        He never agreed to the BitKeeper license in the first place.

        Calling him a member of Linus' team is a bit of a strech, because by that measure thousands are members of that team.

        I certainly don't believe that everything in the world should be open source, but imo most formats are an exception.

      Wow, I can see where this would have been a total meltdown. That's a very compelling reason not to use Perforce, so I have to agree - it's only free as in beer. I think I'll uninstall it myself, now... thanks for the info.

      UPDATE:Someone asked me whether this comment had been sarcastic. Not at all. The debacle as described was a prime example of why it wouldn't be a good idea to use non-open source software for version control. Knowing this, I have changed my mind about using Perforce, and will indeed uninstall it.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://505456]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (2)
As of 2024-04-24 17:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found