Slashdot Mirror


Home Directory In CVS

shamir_k writes "Joey Hess has come up with an innovative solution to a problem we have all faced. He's put his whole home directory in CVS. Not only can he move between multiple computers easily, he also has automatic distributed backups."

414 comments

  1. I keep my life in a CVS repository by Anonymous Coward · · Score: 0

    WTF, can he travel back to previous versions also?

    1. Re:I keep my life in a CVS repository by Rosco+P.+Coltrane · · Score: 5, Funny

      No. But you can do this right now:

      cvs commit suicide

      --
      "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
  2. Comma Delimited??? by Anonymous Coward · · Score: 1, Funny

    How does that work?

    oh, i, get, it,

    1. Re:Comma Delimited??? by Anonymous Coward · · Score: 0

      Darn Dyslexia.

    2. Re:Comma Delimited??? by ScrewMaster · · Score: 2, Funny

      That's Lysdexia, I believe.

      --
      The higher the technology, the sharper that two-edged sword.
    3. Re:Comma Delimited??? by Anonymous Coward · · Score: 0

      How does putting your information into a pharmacy's database help you?

  3. Described in Linux Journal months ago by HuguesT · · Score: 2, Interesting

    This is innovative but not new, the LJ article is dated September 2002.

    Waky, waky editors?

    1. Re:Described in Linux Journal months ago by kajoob · · Score: 3, Funny

      I like ragging the editors as well, but come on, the blurb said 'innovative' and that is all. There's nothing about "new" mentioned anywhere in there, you pulled that out of your ass just so you could complain. Now quitcherbitchin and just read the kewlness that is home directies in cvs. ;)

      --
      Quidquid latine dictum sit, altum viditur
    2. Re:Described in Linux Journal months ago by Anonymous Coward · · Score: 0

      wacky, as in races or wakey as in wake up?

    3. Re:Described in Linux Journal months ago by LiquidCoooled · · Score: 1

      maybe now its reached v1.0 ?

      --
      liqbase :: faster than paper
    4. Re:Described in Linux Journal months ago by Anonymous Coward · · Score: 0

      Well, even then it was not new - I was doing simular tricks with RCS (RCS settings to enable the ,v files to live in another tree) and NFS mounted repositories before CVS really got going.

      Hell, over 6 years ago, I set up the management/admin of a UNIX EMail router and DNS server via CVS - the CVS backend even set flags that the system used to check out updates after they were made. This gave full tracking to all changes and did not require root access to anyone. (It is still in use today, as far as I know - I set it up as a consulting project for them and the machine is still doing the job)

    5. Re:Described in Linux Journal months ago by Cipster · · Score: 1

      No it's at 0.9.4.5.1b :)

    6. Re:Described in Linux Journal months ago by Goo.cc · · Score: 1

      I knew that I had read about this somewhere!!

    7. Re:Described in Linux Journal months ago by hondo77 · · Score: 3, Insightful

      There's nothing about "new" mentioned anywhere in there, you pulled that out of your ass just so you could complain.

      Merriam-Webster defines news as "a report of recent events". If Slashdot is "News for Nerds" then an article from over a year ago ain't news.

      --
      I live ze unknown. I love ze unknown. I am ze unknown.
    8. Re:Described in Linux Journal months ago by HuguesT · · Score: 1

      Sorry, English is not my first language.

    9. Re:Described in Linux Journal months ago by fireman+sam · · Score: 1

      As described in the slashdot dictionary:

      recent: the timeframe between the current time and last copulation time with a person other than one's self.

      --
      it is only after a long journey that you know the strength of the horse.
    10. Re:Described in Linux Journal months ago by Anonymous Coward · · Score: 0

      Well that's a shitty description. "News" should be information that you didn't know before. As in, "That's news to me!"

    11. Re:Described in Linux Journal months ago by hashinclude · · Score: 1

      Slashdot sells rather better than merram-webster ..

      Sorry .. couldnt resist.

      --
      US is now divided as the "Red" and "blue" states. Red States = communist countries. Coincidence? I think not
    12. Re:Described in Linux Journal months ago by fireman+sam · · Score: 1

      Nice sig

      --
      it is only after a long journey that you know the strength of the horse.
    13. Re:Described in Linux Journal months ago by zsau · · Score: 4, Insightful

      Perhaps it's stuff that matters?

      --
      Look out!
    14. Re:Described in Linux Journal months ago by Slime-dogg · · Score: 1

      ding ding. Mod parent up.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    15. Re:Described in Linux Journal months ago by aminorex · · Score: 1

      The fact that someone posted it to slashdot
      IS news.

      --
      -I like my women like I like my tea: green-
    16. Re:Described in Linux Journal months ago by 1u3hr · · Score: 1
      the blurb said 'innovative' and that is all. There's nothing about "new" mentioned

      innovation: Something newly introduced.
      American Heritage Dictionary

    17. Re:Described in Linux Journal months ago by Luigi30 · · Score: 0, Offtopic

      Stupid sig.

      --
      503 Sig Unavailable

      The Signature could not be accessed. Please try again later or contact the administrator
    18. Re:Described in Linux Journal months ago by TooTallFourThinking · · Score: 1

      Oh christ, people and their semantics. New is relative, not a constant.

      To paraphrase NBC, "if you haven't seen it, it's new to you!"

    19. Re:Described in Linux Journal months ago by 1u3hr · · Score: 1
      Oh christ, people and their semantics. New is relative, not a constant.

      Exactly. Relative to "now". The FA is over a year "old".

      To paraphrase NBC, "if you haven't seen it, it's new to you!"

      Well, that trumps any definition from a mere dictionary. What do those effete literary types know?

    20. Re:Described in Linux Journal months ago by TooTallFourThinking · · Score: 1

      Now that's not my point. It doesn't have to be relative to when the article was written but rather to when you found out about it.

      It's news to some (like: holy fucking shit I didn't know you could do that!) but not news to others (like: i was doing that shit when I was fucking conceived.)

      It can work both ways damnit!

      Columbus: The world is round!
      The Queen: That's fucking news to me.
      The Earth: Umm, duh!!

    21. Re:Described in Linux Journal months ago by op00to · · Score: 1

      Not like you'd read my article other than to find some idea to use to create a strawman argument, but you missed the parent's idea completely. Let me attempt to clarify with skills used to teach this concept to elementary school students.

      Time can have different scales. Humans are "new" to the Earth, when compared to certain other species. Our Sun is young compared to the rest of the universe. "Home directories" have been around for ages.

      When we compare the amount of time that people have been using CVS for their home directory to the time that home directories have been around, we see that this is a relatively new idea. A year is not a whole lot of time compared to the 20 or 30 years that home directories have been around as a concept.

      We can play semantics games all day. I have more free time. I'll win.

    22. Re:Described in Linux Journal months ago by Wolfrider · · Score: 1

      +1 Insightful
      +1 LMAO

      --
      .
      == WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
  4. Here's a piece of advice by Rosco+P.+Coltrane · · Score: 5, Funny

    Don't forget the -kb switch when you do "cvs add pr0n.avi", otherwise you'll be disappointed when check the file out again.

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    1. Re:Here's a piece of advice by Anonymous Coward · · Score: 3, Funny
      CVS will also be a great help when you download pr0n that have the same file names.

      like: untitled.bmp and untitled.bmp - even though they're two different pictures! It'll save the time to rename whole directories!

      And, you can hide all your pr0n from prying eyes too! OOooooo Ahhhhhh!

      Unless, you've named your tree - jerkoff_material.

    2. Re:Here's a piece of advice by Anonymous Coward · · Score: 0

      Okay, here's a piece of advice. Get a fucking book on CVS. Seriously, if you have any idea what anything in this article is about, then you might have a chance to get a job. Period.

    3. Re:Here's a piece of advice by Anonymous Coward · · Score: 1, Informative

      cvs automatically sense binary files these days. No need for the explicit -kb.

    4. Re:Here's a piece of advice by Anonymous Coward · · Score: 0

      Really?

      I use CVS at work. Does that make me a loser?

    5. Re:Here's a piece of advice by Anonymous Coward · · Score: 1, Funny

      Don't forget the -kb switch when you do "cvs add pr0n.avi", otherwise you'll be disappointed when check the file out again.

      From the cvs manpage:
      "Your kflag specification is ``sticky'' when you use it to create a private copy of a source file."

    6. Re:Here's a piece of advice by basingwerk · · Score: 1

      Really? An application could churn out a binary file type usually, but it may be so very small that it (by chance) does contain only the printable characters. Next time you edit the file, it may end up with binary characters. How would CVS know when you first checked in the file that it was meant to be binary? What about an application that sometime writes out a binary file, but sometime it is zero bytes long, and it grows later? It looks like text when it is zero bytes long. Last time I checked, the CVS gurus were opposed to automatic detection on the grounds that is is not fool proof. Has this changed?

      --
      I stole this .sig
  5. Hackable by Anonymous Coward · · Score: 0

    Great, let's go hack it now! :)

  6. Old news, good read by lastberserker · · Score: 0, Redundant

    Sorry to break you, but I was doing it (albeit on a smaller scale) for years ;-P Good reading though.

    --
    My other Beowulf cluster is... er...
    1. Re:Old news, good read by lastberserker · · Score: 1

      Oh, and the real beast is that CVS is negligent to chmod stuff. Move on, nothing to see here...

      --
      My other Beowulf cluster is... er...
    2. Re:Old news, good read by cpghost · · Score: 1

      Me too. I was using CVS for about 3 years on my entire $HOME dir, used ssh to synchronize between 5 machines (of mixed brands, Linux, BSD and Solaris), and I retrieved quite a lot of old sources that way. No backup would have been that flexible.

      I'm amazed so few people use remote CVS (:ext: method) for this. It's extremely useful, once you get used to it.

      --
      cpghost at Cordula's Web.
  7. Not Innovative by Anonymous Coward · · Score: 0, Redundant

    Innovative? I don't think so. I would imagine that many people who are familiar with CVS are doing this.

    What's next? Keeping system configuration in CVS?

    1. Re:Not Innovative by TheZax · · Score: 5, Funny

      What's next? Keeping system configuration in CVS?

      Slow down, I can only patent so quickly...

      Note to self:

      1. Patent home dir in CVS

      2. Patent system configs in CVS

      3. Patent pr0n in CVS (note -kb)

      --

      JWall: GUI client for IPTables
    2. Re:Not Innovative by Anonymous Coward · · Score: 0

      Don't forget booting with make.

    3. Re:Not Innovative by Inflatable+Hippo · · Score: 2, Interesting

      > What's next? Keeping system configuration in CVS?

      Hey! I claim "prior art"!

      Seriously, I do this for entire binary installations including all configuration files for a custom server we've written.

      It's a really nice solution.

      One of the really great benefits is when someone has been footling some of the more complex configuration and broken things. It's really easy to find which files they've changed and what the changes are.

      Sure there's nothing you couldn't any other way but it it certainly makes lots of things easier.

      No doubt you could go further than we have with all sorts of fancy cron jobs to auto-update from a "trusted" branch nightly across your 5000 production servers but we only have 2 :-)

  8. CVS takes files? by cuppm · · Score: 5, Funny

    Man, I have a hard enough time trying to get them to accept my insurance card for prescriptions. Hats off to him for getting them to take his files...

    --
    I have no sig, the eyebrows seal the deal. That's right. Eyebrows.
  9. My favorite directory to put in CVS by Beryllium+Sphere(tm) · · Score: 4, Interesting

    /etc

    Have a checkin comment for why a configuration change got made. Be able to roll back a failed experiment reliably. Find out when a change happened.

    1. Re:My favorite directory to put in CVS by Rosco+P.+Coltrane · · Score: 4, Funny

      My favorite file to put in CVS : /dev/hda1. Takes a while to recover an old file though ...

      --
      "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    2. Re:My favorite directory to put in CVS by starbuzz · · Score: 1
      Would love to have /etc under CVS as well, but last time I tried, the available cvs command line client did not allow commits as root.

      Thus resorted to RCS which works reasonably well for tracking minor changes.

    3. Re:My favorite directory to put in CVS by IM6100 · · Score: 1

      Not if you use a properly small root partition and/or are running a SCSI only system...

      --
      A Good Intro to NetBS
    4. Re:My favorite directory to put in CVS by Anonymous Coward · · Score: 0

      Make /etc world read/write.

      Duh.

    5. Re:My favorite directory to put in CVS by Espectr0 · · Score: 4, Informative

      /etc

      Or you can just use Gentoo, which does this automatically when you update your system, pointing out the location and files that are different, all with diff output, and the ability to merge the changes, overwrite or ignore the change.

    6. Re:My favorite directory to put in CVS by Anonymous Coward · · Score: 0

      DOH, why didn't I think of that, it also has the added benfit of helping hackers read you shadow file.

    7. Re:My favorite directory to put in CVS by LS · · Score: 1

      Just make sure that you aren't checking in any protected source files to a world-readable repository...

      --
      There is a fine line between being a cultivated citizen and being someone else's crop. - A. J. Patrick Liszkie
    8. Re:My favorite directory to put in CVS by Anonymous Coward · · Score: 0

      Thank you captain obvious.

    9. Re:My favorite directory to put in CVS by sharkey · · Score: 1

      Damn straight. A real geeks /dev/hd* is for shits and giggles ONLY.

      --

      --
      "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
    10. Re:My favorite directory to put in CVS by angst_ridden_hipster · · Score: 1

      Of course, the thing that sucks about putting /etc into CVS, is that CVS doesn't handle symbolic links very well.

      I once wrote a bunch of loginfo and modules scripts to make it do what I thought was "the right thing." But it turned out not to be the right thing after all (I wanted the semantics of the link target to be what was revision controlled, not the contents of the target. This doesn't always do what you want either.)

      --
      Eloi, Eloi, lema sabachtani?
      www.fogbound.net
    11. Re:My favorite directory to put in CVS by Anonymous Coward · · Score: 0

      It only needs to be world-readable, so as an ordinary user you can do commits. Root can still do checkouts or updates.

      % cd /etc
      % su
      Password: xxxxx
      % vi /fstab
      % exit
      % cvs commit

      As for the shadow file, it has perms 600 so what's the problem? (No, I can't keep my shadow file in CVS but why should I?)

    12. Re:My favorite directory to put in CVS by MobyTurbo · · Score: 2, Informative
      /etc
      Or you can just use Gentoo, which does this automatically when you update your system, pointing out the location and files that are different, all with diff output, and the ability to merge the changes, overwrite or ignore the change.
      NetBSD does this with etcupdate and FreeBSD does this with mergemaster. Where do you think Gentoo got this from? :-)
    13. Re:My favorite directory to put in CVS by krmt · · Score: 1

      As does Debian, with .conf files.

      --

      "I may not have morals, but I have standards."

    14. Re:My favorite directory to put in CVS by inferno0069 · · Score: 5, Informative

      Where do you think Gentoo got this from?

      Debian.

    15. Re:My favorite directory to put in CVS by Slime-dogg · · Score: 1

      Except that when you do manual changes, and something gets screwed up. Gentoo doesn't check the changes that you've made, it only checks the changes that occur from emerge update to emerge update. If you're not paying attention, you could replace your make.conf or modules.autoload file with etc-update. If that happened, you'd have to go in and change things again.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    16. Re:My favorite directory to put in CVS by Pastis · · Score: 1

      But Gentoo doesn't keep history of your changes. Neither does it lets you put in comment on what you changed, etc...

      Comme on, how does the parent post could be given a 4?

    17. Re:My favorite directory to put in CVS by klieber · · Score: 1

      That's simply not accurate. etc-update shows the difference between the actual file and the new file being installed by the package. So, if you've customized your /etc/fstab file, and you install a new version of baselayout, etc-update will show the changes that you've made to your fstab file and diff it against the unmodified version installed by the baselayout package.

      --
      Gentoo Linux http://gentoo.org/
    18. Re:My favorite directory to put in CVS by mark_lybarger · · Score: 1

      most user changes for fstab are at the top of the file and are not displayed during a normal etc-update. you have to know that "hey this looks like fstab, and i have my own version of that file" to know not to update it.

      gentoo could use a way to know that a file in /etc was updated by the user after it was emerged and give explicit directions on those files. an update of xfree will give 80 or so file changes in /etc which makes the mundane process of updating them all subject to human error of accidently updating a file like fstab or some such. if i've updated my kdm to allow x connections via xdmcp, i don't want etc-update to be able to mudge that up.

      it could also use a way for users to just give a list of files that should not be looked at by normal etc-update. if i know that fstab, smb.conf, and others should not be touched by a normal etc-update, i should be able to provide a list of those (though those again are files edited after an emerge).

      i'd say that a LOT of bugs for gentoo occur because etc files get updated when they shouldn't or etc files don't get updated when they should.

    19. Re:My favorite directory to put in CVS by Oo.et.oO · · Score: 1

      although your comments are great ideas, cvs still helps keep track of your multiple changes between emerges.

      now go file some bugs!:

      bugs.gentoo.org

    20. Re:My favorite directory to put in CVS by gosand · · Score: 1
      Have a checkin comment for why a configuration change got made. Be able to roll back a failed experiment reliably. Find out when a change happened.

      If you just make changes willy-nilly to your config files (or most any file) without making a backup copy, or putting comments in your config files, then you deserve to have bad things happen to you. How do I know? I have screwed myself over too many times. Now I always put comments in my files. If I am replacing a value in a config file, I copy that line and comment it out. I usually put my initials on a comment above the line, so I can quickly find what lines I have modified.

      Now if other people are changing files, I could see how this could be a good thing. Or just as a neat experiment. But I think people should put good practices in place before trying to find some magical way to do things for you that you should already be able to handle.

      --

      My beliefs do not require that you agree with them.

    21. Re:My favorite directory to put in CVS by TooTallFourThinking · · Score: 1

      That wasn't a useful comment.

      -- I love recursion!

    22. Re:My favorite directory to put in CVS by qta · · Score: 1

      Be careful not to let CVS screws your file permission. CVS fiddles with the x, r, and w bits by design, and you don't want the wrong bit set on the wrong file, ie. passwd, master.passwd, or pwd.db etc. world readable/writable.

  10. CVS, not CSV idiot. by Anonymous Coward · · Score: 0

    ibid.

  11. Obligatory Duplicate Article Post by Anonymous Coward · · Score: 0
    Wasn't this exact same article posted a few months back? I remember thinking it was a cool idea, but I never got around to it.

    Anonymous Kev
    Proudly posting as AC since 1997

  12. I wonder..... by The+One+KEA · · Score: 4, Interesting

    Has anyone tried this with BitKeeper?

    --
    SCREW THE ADS! http://adblock.mozdev.org/ Proud user of teh Fox of Fire - Registered Linux User #289618
    1. Re:I wonder..... by Kourino · · Score: 4, Informative

      You wouldn't do this in Bitkeeper if you were a privacy freak. Remember, the Bitkeeper liscense requires that you maintain open logging. Realistically, this means that info about what files you change get transmitted across the network; I don't know if it's encrypted or not. It's not that big of a deal, but I'm sure someone here would care.

      That being said, doing it in BK would be a compelling alternative if you wanted to use the same /home repo across (say) three or more machines, since you could take advantage of its more complex merge operators. Arch or SVN also might be good ideas. (Don't have any experience with Subversion, though.)

    2. Re:I wonder..... by Cramer · · Score: 1

      For the free license, the repo itself would have to be public. Open Logging does not send the changes, just a summary of the files changed and comments. And as of a few weeks ago, you couldn't browse the openlogging tree anyway :-) So, openlogging isn't the problem.

      And no one has pointed out the obvious: what do you do when the CVS server dies? CVS is not distributed. There is exactly ONE copy of the repo. You cannot restore the repo from a checked out copy as it only carries one version of the file(s). BK is distributed; one works from a clone of the repo that can be used to restore a lost server.

      [Personally, I prefer clearcase for my SCM needs. But it's not distributed either. And there's no flavor of it that's even remotely free. Hmm, a home dir as a clearcase dynamic view??? That'd be tricky.]

    3. Re:I wonder..... by firebeaker · · Score: 1

      Homedir in Clearcase in a dynamic view? That wouldn't be too difficult on Linux etc. I had Apache serving out of dynamic views for quite some time at my last job. When I wanted the production web server to display a later version, I moved a label along. Much easier than actual physically copying files etc.

      --
      -beaker
    4. Re:I wonder..... by Otterley · · Score: 2, Informative

      Wrong. BitKeeper does not require open logging for single-user, single-host repositories.

    5. Re:I wonder..... by flossie · · Score: 1
      what do you do when the CVS server dies? CVS is not distributed.

      True, but providing you have sufficient disk space elsewhere, it is trivial to set up a cron job to copy a tgz of the repository to a backup machine. Just unpack the copy, checkout with a new path and away you go.

    6. Re:I wonder..... by Trolling4Dollars · · Score: 2, Funny

      Wait, I have a "better idea" (TM). Why don't we get servers to backup the data on the servers that back up the data on the servers that back up the data on the servers that backup the data on the ser

      ^Z
      [1] loop ends

    7. Re:I wonder..... by PugMajere · · Score: 1

      Use cvsup.

      Then you don't have to copy the whole thing every backup interval, infact, hourly backups of reasonably active repositorys aren't even noticeable.

    8. Re:I wonder..... by Anonymous Coward · · Score: 0

      I have all my home directory under SVN revision, works like a charm !

      Check it out.

    9. Re:I wonder..... by jmt9581 · · Score: 1

      That's true, but one of the advantages of this approach that's mentioned in the article is the ability to sync up files from your home directory to any random machine that you may be working on.

      --

      My blog

    10. Re:I wonder..... by Otterley · · Score: 1

      When BitKeeper says "single host," they really mean "checkins appear to be from a single host." One can continue to clone repositories to other hosts, commit deltas from multiple hosts and do push/pull operations, but all deltas will be authored by the single user@host.

  13. Why just home? by AuMatar · · Score: 5, Interesting

    I asked this on a local linux mailing group recently- what do people think about the idea of a version control file system? Disk space is cheap these days, we can afford it space wise. Think of all the problems it would solve.

    *Made a mistake in your config file? Revert it
    *User deleted the file? Revert it
    *Want to see why you made a change to any given file? Check the comments (commenting would be optional, of course)
    *Your system was exploited? Revert the entire system to before the exploit
    *Upgraded an app and regret it? Revert the files

    And so on. I'm not sure if CVS would be the best method (I'm not a SCM specialist), but I'd see this as an extremely useful feature who's time has come.

    --
    I still have more fans than freaks. WTF is wrong with you people?
    1. Re:Why just home? by Anonymous Coward · · Score: 0

      I remember back in college whatever filesystem VMS uses had auto versioning of files that were denoted with a semi-colon followed by a number attached to the end of the filename.

    2. Re:Why just home? by PhilipPeake · · Score: 4, Informative
      Ever hear of VMS ?

      It had a filestore with file versioning - about 30 years ago.

    3. Re:Why just home? by Jellybob · · Score: 5, Informative

      I'll get modded down to oblivion for mentioning an MS product in a positive light, but Windows XP+2003 Server supports this already.

      Users can rollback to previous revisions of files that they've saved to the 2k3 server, saving the sysadmins the time of restoring *another* accidently deleted file from the backup tapes.

    4. Re:Why just home? by Anonymous Coward · · Score: 0

      Amen, why are we still using shitty filesystem that

      1) don't index their contents effectively (Reiserfs being a counter-example).

      2) don't version all changes (doesn't VMS do this to some extend)?

      This would be something cool for open source to do, but I fear Microsoft will beat us to it.

    5. Re:Why just home? by AuMatar · · Score: 1

      Before my time. Heck, before my birth (I've hear of the OS, but never experienced it). Perhaps its time to revive that feature, then.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    6. Re:Why just home? by metlin · · Score: 1

      If I'm not mistaken, MS is trying something like this with their Filesystem for LongHorn (the enterprise edition).

      Not too sure, though.

    7. Re:Why just home? by pclminion · · Score: 5, Insightful
      The basic problem with versioning in the file system is deciding when to commit. Do you commit for every byte written? Of course not, that would be a massive waste of time and disk space. Do you commit once for every write() call? That suffers the same problem, because sometimes writes are very small, and you can never predict in advance how large a write will be.

      You can't automatically commit after every xxx bytes of data written, because that means there will be a bunch of intermediate states on disk, most of which are probably bogus (this argument applies to the above two options as well).

      The only thing that even remotely makes sense is to commit on close(), but that doesn't make sense for applications like text editors which keep the file open for the entire duration. You want each SAVE to be a commit, not each CLOSE.

      What this boils down to is that there must be application level support for the commit operation (i.e., a new commit() syscall). The application has to specifically be coded to tell the operating system "Ok, I'm done with the revision, commit this now." And that means every application on the system will have to be tweaked to make the necessary commit calls, not to mention the thought that goes into deciding WHEN it is appropriate to commit. I would wager that a lot of maintainers wouldn't bother to make those changes, and as a result those applications wouldn't support versioning.

      I agree that a versioned file system would kick ass, and there are even some out there already (Google for "versioning filesystems"). But they tend to be special purpose. I don't see how it could be cleanly and transparently integrated into a general purpose system such as Linux.

      Note that I didn't bother to check CiteSeer to see if there is academic work on this before posting this comment. So if anyone knows of any work toward that end, I'm sure a lot of us would appreciate a pointer to it.

    8. Re:Why just home? by Anonymous Coward · · Score: 0

      Sure did, and it was fucking amazing.

    9. Re:Why just home? by BiggerIsBetter · · Score: 1

      Hasn't Novell had this functionality for years?

      --
      Forget thrust, drag, lift and weight. Airplanes fly because of money.
    10. Re:Why just home? by TClevenger · · Score: 1

      Novell's had it since at least version 4. Accidentally deleted or corrupted a file? Go back and recover any of the last few saves.

    11. Re:Why just home? by Jellybob · · Score: 1

      Very possibly - I wouldn't know though, since I work is an MS shop, and home is Linux based.

    12. Re:Why just home? by AuMatar · · Score: 1

      Hmm. But a save would be a commit with a save on close. Look at the disk API- fopen, fread, fwrite, fseek, fclose. THere is no fsave. To do a save, you open the file in write mode, write the data, then close it every time. So that would work. You would have more commits than necessary (for those of us who save every few minutes), but thats better than too few.

      We would, however need a new system call close_with_comments that comments a commit (the old style close would not comment, thus allowing backward compatibility).

      Obviously, it would need work, especially on the version control side. But I think its workable, I don't expect a working spec after 1 slashdot discussion and a few seconds thought.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    13. Re:Why just home? by Anonymous Coward · · Score: 0

      It's so fun, we are using this convention at work on every OS we deliver. Kinda scary.

    14. Re:Why just home? by soundbyt · · Score: 1

      Yes, since at least 4.x (When I became familar with it.)

    15. Re:Why just home? by AuMatar · · Score: 4, Informative

      To make this more legible- a text editor, for example, does not have the file open the entire time waiting for input. It opens the file, reads it, then closes it at startup. When the user hits save (through keyboard commands, mouse click, whatever), the editor opens the file again, this time in write mode, writes the data, and closes it. By this model, close could be the commit function, and open could be the checkout function.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    16. Re:Why just home? by Jim+Hall · · Score: 2, Informative

      Ever hear of VMS ? It had a filestore with file versioning - about 30 years ago.

      Not just VMS. Apollo DOMAIN had something like this, too. -jh

    17. Re:Why just home? by mastropiero · · Score: 0, Troll
      Users can rollback to previous revisions of files

      Including the local copy of the Worm of The Week (TM), too! :)
    18. Re:Why just home? by santiago · · Score: 1

      The easiest solution is probably to do an automatic commit of everything every 24 hours or so, with the option to do a manual commit of select files whenever you want. It gives you reasonable rollback ability without active user intervention and allows users to demarcate specific points that they want to be able to return to. Most importantly, it doesn't require any changes to existing programs and file-access models.

    19. Re:Why just home? by Carnildo · · Score: 1

      Committing on both "commit()" and "close()" should work; for old-style applications that don't support "commit()", this will ensure that successive versions are whole versions, but won't commit as often as you might like. For apps that support commit(), a commit() followed by a close() would only commit one version. For filesystems that don't support versioning, commit() would be a no-op.

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    20. Re:Why just home? by pavon · · Score: 1

      Yeah, I agree. And so does Hans Reiser BTW, it is on his list of things to put into the Reiser file system at some point. (And if you want to make it a high priority item pay him to do it :)

    21. Re:Why just home? by Anonymous Coward · · Score: 0

      isn't Win95 before your birth too?

    22. Re:Why just home? by bug-eyed+monster · · Score: 3, Informative

      It's been quite a while since I used VMS... IIRC the problems we had we the VMS versioning:

      - It created a new version every time you saved, so just going through a few change/compile/fix cycles (for example) would create lots of versions clogging up the disk.

      - The old versions were in the same place as the latest version, and if you wanted to delete a file, you'd just say "delete blah.blah.*" to wipe out all versions (and therefore all traces of the file)... then say "oops!"

      It was useful in many cases, but in a different way from CVS. A very useful solution would be to have file-level journaling with the ability to throw in comments and create tags and branches.

    23. Re:Why just home? by Cramer · · Score: 1

      Heh, I have a copy of VMS (or is it MVS?) DEC sent it to me with a bunch of updates for my alpha. Of course, I have no license keys for any of :-) (And I don't think that alpha can run VMS.)

    24. Re:Why just home? by moonbender · · Score: 1

      IIRC, Hans Reiser said in an interview some time ago that versioning is on his (very long) list of things to implement in ReiserFS when it's done - so he's with you there, saying this should be part of the file system. I sure think it'd have interesting applications!

      --
      Switch back to Slashdot's D1 system.
    25. Re:Why just home? by itwerx · · Score: 1

      Yup. At least since 2.15 when I first used it. It's called "Salvage". The only thing that sucks is that if you delete the actually directory structure (not just files within) then they get dumped into one huge list. So if you had a folder with ten subfolders and a hundred files in each one you would have to manually eyeball a list of those 1000 files plus every other file whose parent folder had been deleted.
      Worked great 90% of the time. The other 10% or so it was easier to just go to last night's tape. :)

    26. Re:Why just home? by nullard · · Score: 1

      The solution to the problems you describe is simple. Define a system level commit function. Have close() call it. That way, older apps still commit on close. and newer apps only commit when necessary. You might want to do that whenever a file is flushed too.

      It would be easy to modify any application to use the new system anyway. Just redefine the save function in the binary. It'd probably be trivial to alter the address of the save function so that it calls commit() and then calls the old save function.

      --


      t'nera semordnilap
    27. Re:Why just home? by pmuellr · · Score: 1

      On a much smaller scale, the Envy repository used in Envy/Smalltalk, then VisualAge Smalltalk, then VisualAge Java, used to essentially commit with every save. Seems insane, but of course Smalltalk methods are small <grin/>, and it was fantastic to be able to see every change you had ever made, at the 'save' level.

      Now, we're using Eclipse, and thus CVS. sigh

    28. Re:Why just home? by Cramer · · Score: 1

      Most text editors work on an in-memory copy of the file: open, read, close, edit, open, write, close, exit.

      Another option is to use the filesystems journal to rollback changes.

    29. Re:Why just home? by Anonymous Coward · · Score: 0

      Close, but not necessarily. For example, some editors, when working on very large files, have an option simply to mmap the file - all changes become immediate and permanent, but the advantage is that you can edit a very large file without having to read hundreds of megabytes into memory or temporary files. Of course, there too you'd probably want the commit to be made when the file is closed, but for different reasons.

    30. Re:Why just home? by jroller · · Score: 1
      CVS is different than a backup system. It also lets you sync multiple remote copies together and merge changes between them.

      I like faubackup for an easy backup system that allows users access to backups at anytime. (There's other backup systems using rsync in similar manner)

      Package: faubackup
      Description: Backup System using a Filesystem for Storage

      This Program uses a filesystem on a hard drive for incremental and full backups. All Backups can easily be accessed by standard filesystem tools (ls, find, grep, cp, ...)

      Later Backups to the same filesystem will automatically be incremental, as unchanged files are only hard-linked with the existing version of the file.

    31. Re:Why just home? by cpghost · · Score: 2, Insightful

      This is the reason database transactions exist. A filesystem based on CVS would need the concept of (atomic) transactions: you open(2) the file, therefore starting a transaction. Every access (read(2)) and modification (write(2)) etc... goes in the transaction _only_, and at close(2), the transaction gets commited.

      The funny part starts at close() (or commit())-time, when you need to resolve conflicts. Huh...

      --
      cpghost at Cordula's Web.
    32. Re:Why just home? by Rheingold · · Score: 1

      Yes, but regrettably, UNIX' file semantics differ from VMS' in a way that makes versioning UNIX files nearly impossible. I've considered the notion of a versioning VFS on top a regular filesystem, but few if any applications would work transparently. And if you go to the trouble to implement new system calls which applications would have to explicitly use, you may as well just do it in userspace with a library.

      --
      Wil
      wiki
    33. Re:Why just home? by cnladd · · Score: 1

      I'm very surprised that no one has mentioned this already, but this was done years ago.

      I'm by no means an OpenVMS expert, so if there's one in the house please feel free to correct me.

      At a past client (nearly seven years ago) I recall staring in awe when I learned some of the details about the VMS filesystem. Filenames were appended with a colon, followed by a number (for example, "README.TXT;5"). The number after the colon represented the version number.

      Accessing the filename (without the colon or version number) would yield you the most recent (higher-numbered) version of the file. If you need to access a previous version, however, you could do that by appending the colon and the appropriate number.

      Unfortunately, I don't know how this worked on an application level (say with a database that constantly openened and wrote to a file), but it was a wonderful feature to have for text files--both configuration and code. The number of versions kept by the filesystem could even be configured.

      --

      --
      Welcome to the land of the easily amused...

    34. Re:Why just home? by HoldmyCauls · · Score: 1

      Why not commit on logout? It would be easy to append the cvs checkin command to one's .bash_logout config.

      --
      Emacs: for people who just never know when to :q!
    35. Re:Why just home? by Anonymous Coward · · Score: 0
      *Your system was exploited? Revert the entire system to before the exploit

      Lol man. Guess what the hacker is going to do to your CVS histories. This idea can't work.

    36. Re:Why just home? by Anonymous Coward · · Score: 0

      its called clearcase. I use it every day. And its wank. Cows run faster.

    37. Re:Why just home? by Rheingold · · Score: 1

      Actually, most text editors work in a separate file and the old file is unlinked and the new one linked to the file name. Try this:



      $ touch test
      $ ls -i test
      508421 test
      $ vim test # Just :wq
      $ ls -i test
      508424 test


      Notice the inode has changed.


      --
      Wil
      wiki
    38. Re:Why just home? by xenocide2 · · Score: 1

      How about using a journaled file system? They keep a log of recent writes and what not. So every time you commit the log, a new version is made. It'd be like a meta log. Which probably means it would suck =(

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

    39. Re:Why just home? by Espectr0 · · Score: 1

      I asked this on a local linux mailing group recently- what do people think about the idea of a version control file system? Disk space is cheap these days, we can afford it space wise. Think of all the problems it would solve.

      Windows does this. It's called "system restore".

    40. Re:Why just home? by Anonymous Coward · · Score: 0

      You. Da. Man.

    41. Re:Why just home? by Anonymous Coward · · Score: 0

      My version of Eclipse (eclipse-SDK-3.0M3-win32) keeps a local record of all saves, so that I can undo changes. I don't use CVS.

    42. Re:Why just home? by Clover_Kicker · · Score: 1

      SALVAGE also worked in NW 2.12, for what it's worth.

    43. Re:Why just home? by Anonymous Coward · · Score: 2, Insightful

      I'll get modded down to oblivion for mentioning an MS product in a positive light, but Windows XP+2003 Server supports this already.

      So does Windows XP Pro. It's called "System Restore". I don't think that it works for every single file, but it does a lot of that stuff, keeping old config files around and so on.

      And no, you won't get modded down for mentioning an MS product in a positive light as long as your mention _makes sense_ (and doesn't incorrectly trash Linux in the same breath). However, the second they come up with a (-1, Irritating Marytr Complex) mod, you're dead. :)

    44. Re:Why just home? by terras · · Score: 1

      OpenVMS can run on Alpha. Digital/Compaq renamed VMS when they moved it off the VAX architecture.

      If you really want to run VMS on your Alpha, you could always try to find a VAX emulator

    45. Re:Why just home? by Anonymous Coward · · Score: 0

      Not really what you are asking for, but still:

      http://sourceforge.net/projects/cvsfs

    46. Re:Why just home? by Anonymous Coward · · Score: 0
      Commit on every write as a checkpoint and periodically create a formal "baseline" opperation.

      Once a baseline has been created, clobber the checkpoints which are:
      • Not part of a baseline
      • and not currently visible in a filesystem view (both user views and application views)
      • and superceded by the baseline of every filesystem view
      Your filesystem will still grow quickly, but with periodic baselining only the useful versions would be retained.
    47. Re:Why just home? by AuMatar · · Score: 1

      Depends on how the version control is set up (it wouldn't really be using CVS, but metadata on disc). Of course, I was just throwing out uses.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    48. Re:Why just home? by AuMatar · · Score: 1

      I've used clearcase. Its not the same. Clearcase is a SCM system that can be traversed as an fs. The vobs aren't on your system, and there's a lot of overhead to it. This would be a version system as part of the fs. Totally different.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    49. Re:Why just home? by Anonymous Coward · · Score: 0

      Just remember to recommit after you patch it. No sense rolling back to a vulnerable state.

    50. Re:Why just home? by IdleTime · · Score: 1

      Well, the problem with CVS surfaces the moment you try to do this through a proxy/firewall that has a very limited set of open ports. CVS does not support going through a proxy based firewall and is useless.

      I have tried for years to get this to work (as have others) but so far the CVS maintainers have not deemed the feature necessary. Oh yeah, can't use ssh through the firewall either. The only way around the problem is to set up an illegal http tunnel, which i would not do since it would jeopardize security and my own job.

      File systems with version control is not new. It's been used for years on mainframes at least.

      --
      If you mod me down, I *will* introduce you to my sister!
    51. Re:Why just home? by JamesTRexx · · Score: 1

      Gee, then I wonder why we call our VMS servers Alphas? ;-)

      --
      home
    52. Re:Why just home? by canajin56 · · Score: 1

      Norton Auto-Protect works fairly well, for some of those problems. I can use it to revert a messed up config-file, or accidental deletion. I can't comment, though. Reverting the system works fairly well...just select everything changed AFTER a given date...oh, except that it would restore the most revent one, not the oldest change...and you can't sort by location AND date, so it would revert everything, not just system files, unless you went though a fair bit of pain to select just the ones you wanted...

      But those are problems with the interface, and fairly easy to change, if they felt like it.

      My dad uses something better on his Windows machine at work, with proper reversion. I don't recall what it is called, though.

      --
      ASCII stupid question, get a stupid ANSI
    53. Re:Why just home? by angst_ridden_hipster · · Score: 2, Funny

      What? Like VMS?

      (ducks)

      --
      Eloi, Eloi, lema sabachtani?
      www.fogbound.net
    54. Re:Why just home? by OoSync · · Score: 1

      Hans Reiser has a different take: commit atomically on flush(). This does the commit at about the most performance-friendly time and in a manner that keeps the filesystem state nice and clean. This is how Reiser v4 works.

      --

      I always get the shakes before a drop.
    55. Re:Why just home? by merdark · · Score: 1

      I like the idea, and not surprising it's already been researched.

      http://citeseer.nj.nec.com/santry99deciding.html

      The Elephant file system, which was implemented on top of the FreeBSD VFS, is basically a versioning file system that tries to keep as much history around as possible.

      It worked something like this:

      cd .yesterday

      This would allow you to look at your filesystem as it was yesterday. You could also cd to specific times during a given day. It was designed to be more or less transparent to existing applications.

    56. Re:Why just home? by Cramer · · Score: 1

      VIM - Vi IMproved 4.2 (1996 June 17, compiled Dec 17 1996 14:55:08)

      [cramer:ttya1]dominion:~/[9:16pm]:ls -li test
      403865 -rw-r--r-- 1 cramer root 0 Nov 11 21:16 test
      [cramer:ttya1]dominion:~/[9:16pm]:echo ":wq" | vim test > /dev/null
      Vim: Warning: Output is not to a terminal
      Vim: Warning: Input is not from a terminal
      [cramer:ttya1]dominion:~/[9:16pm]:ls -li test
      403865 -rw-r--r-- 1 cramer root 0 Nov 11 21:16 test
      [cramer:ttya1]dominion:~/[9:17pm]:echo ":wq" | elvis test > /dev/null
      [cramer:ttya1]dominion:~/[9:17pm]:ls -li test
      403865 -rw-r--r-- 1 cramer root 1 Nov 11 21:17 test
      [cramer:ttya1]dominion:~/[9:17pm]:which elvis
      /home/cramer/bin/elvis
      [cramer:ttya1]dominion:~/[ 9:17pm]:elvis --version
      ELVIS 1.8pl3, by Steve Kirkendall (22 April 1994)
      ...

    57. Re:Why just home? by smallpaul · · Score: 1

      Userspace is fine, but you need an OS-wide convention so that tools can reliably work with each other's versioned files.

    58. Re:Why just home? by Cramer · · Score: 1

      "can run" as in VMS will recognize the hardware and go about it's business. That's like installing a BeOS developer release on a Xeon. (that probablly would work. it just wouldn't see anything other than the processor.)

      Tru64 panics attmepting to determine the hardware... when it reads the hwdb, it doesn't understand what the cpu board id is and gives up. It's labeled "DIGITAL Server 3000", but DEC renamed the hardware three times before Tru64 existed... According to linux, it's a Noritake/Primo -- which is the correct MB/cpu codename.

      PS: I don't care about VMS. I thought it was odd for them to send me VMS when I requested a "hardware update" CD (which is simply an AlphaBIOS and SRM update CD.)

    59. Re:Why just home? by Rheingold · · Score: 1

      Right. Not only that, but you've got to convince all the authors of the various editors, configuration tools, etc to support it, which more or less makes it a non-starter.

      --
      Wil
      wiki
    60. Re:Why just home? by Cramer · · Score: 1

      "can run" as in VMS will know what to do with the specific hardware. "Alpha", like "PC", does not refer to a single hardware design. There were systems designed to run VMS/Unix and systems designed to run NT. (which mostly boils down to SRM vs. AlphaBIOS.)

    61. Re:Why just home? by Anonymous Coward · · Score: 0

      I stand corrected :)

    62. Re:Why just home? by Rheingold · · Score: 1

      Wow. those are both ancient. I just tested with emacs 21.3 and it exhibits the same behavior.



      Furthermore, implementing this sort of thing when a file is opened in append mode would also be problematic.

      --
      Wil
      wiki
    63. Re:Why just home? by Cramer · · Score: 2, Funny

      [cramer:ttyp0]dominion:~/[10:43pm]:cat /etc/redhat-release
      release 4.1 (Vanderbilt)


      *whistles innocently*

    64. Re:Why just home? by bcrowell · · Score: 4, Interesting
      The basic problem with versioning in the file system is deciding when to commit.
      I use Unison for this, and it works great. A commit happens whenever I choose to run Unison. I'm a human. Unlike a computer, I understand what I'm doing and why. I know when I'm done working on something, and when I'm ready to synchronize my files.

      From the article:

      • I get three major benefits from keeping my whole home directory in CVS: home directory replication, history and distributed backups.

      I get all these benefits from Unison. Admittedly, the history only gives me snapshots at two different times (time 1=now, time 2=last time I committed), but that's always been good enough for me. Deleted the wrong file? No problem -- get it back from the other machine.

      Unison is also cool because, unlike CVS, it (a) is easy to set up and maintain, (b) is quick and easy to run, and (c) works just as easily with binary files as with text files.

    65. Re:Why just home? by Marillion · · Score: 1
      At university, over a dozen years ago, we had a VAX750 that ran "classic" VMS. Please allow for some fractured memories.

      The version number auto rotated. The most recent file was always "FILE.TXT;1" what was implicitly selected if you just used "FILE.TXT". A directory property allow you to set the maximum number of versions a file could have. Since our disk quotas were set at 500 blocks (yes 250 Kilo bytes) we often set it to one.

      The version rotation only occured if an application overwrote a file like text editors, compilers and linkers would do. However, a program that modified an existing file would not rotate the version.

      Another interesting feature is that you could define simple indexing on a file that was implemented by the operating system. The OS managed the record storage. The similar GNU idea is gdb.

      --
      This is a boring sig
    66. Re:Why just home? by Varitek · · Score: 1
      It created a new version every time you saved, so just going through a few change/compile/fix cycles (for example) would create lots of versions clogging up the disk.
      You can tell it to only keep a certain number of copies.
      The old versions were in the same place as the latest version, and if you wanted to delete a file, you'd just say "delete blah.blah.*" to wipe out all versions (and therefore all traces of the file)... then say "oops!"
      You'd have to tell it do delete *.*;* to do that.
    67. Re:Why just home? by flink · · Score: 1

      Yeah! We could put a semi colon and the file's version number after it's name and have each modification automaticly create a new version. Then we could have the file's unadorned name refer to the most recent version!

    68. Re:Why just home? by Anonymous Coward · · Score: 0

      It doesn't work most of the time, and I would never trust it.

      Plus it allocates WAY too much space for just a system configuration.

    69. Re:Why just home? by Anonymous Coward · · Score: 0

      Nah, just get GNU httptunnel, set it up at both ends, then configure ssh to use the local httptunnel redirection port when connecting to your ssh/CVS server. Sure it takes a couple of hours to get configured and working, but it's not impossible.

    70. Re:Why just home? by bug-eyed+monster · · Score: 1

      You can tell it to only keep a certain number of copies.

      True, and that's what everybody did, but that just kept the latest few versions. Good to restore from a "D'oh!" moment, but not very useful for long-term versioning.

      You'd have to tell it do delete *.*;* to do that.

      Well, *.*;* (or *.*.* you could use either '.' or ';' to delimit the version number) would delete all files in the directory. To delete one file, you'd use blah.blah.* (or blah.blah;*). There was no point just deleting the latest version since the previous version was sitting right there and would be picked up instead (as far as I remember, correct me if I'm wrong).

    71. Re:Why just home? by Anonymous Coward · · Score: 0

      You mean Shadow Copy? Samba 3 has this functionality also.

    72. Re:Why just home? by Anonymous Coward · · Score: 0

      No, you're talking about snapshotting. Linux has that too. (And has had longer than Microsoft Windows, if we're competing here.)

    73. Re:Why just home? by TardisX · · Score: 1


      A bit like this?

      --

      Command attempted to use minibuffer while in minibuffer
    74. Re:Why just home? by __past__ · · Score: 1
      Ever hear of VMS?
      Before my time. Heck, before my birth
      So, when do you plan to get born? Are we invited to your first birthday?

      You can still buy brand new OpenVMS systems. If you want to play with one, sign up for the free test drive program. Lots of fun toys to play with (not only VMS, also stuff like Red Hat on Itanium, HP-UX etc.).

    75. Re:Why just home? by Anonymous Coward · · Score: 0

      VMS did this.
      Every file was appended with a number. From time to time people would PURGE (possibly with options) to remove older version of the file. As cheap as disk space may be, many people never have enough. Think about the implications of running an MP3 tagging program on a directory of MP3s. You end up with another version. Later lets say you recode them at lower bitrates so you can fit more into your Rio (for when you are jogging and want to listen to Mozart, for example). There is aother version. Suddenly you have chewed through 1G of disk space, possibly invsibly.

    76. Re:Why just home? by ViolentGreen · · Score: 1

      From my experience System Restore works pretty well too.

      --
      Not everything is analogous to cars. Car analogies rarely work.
    77. Re:Why just home? by Anonymous Coward · · Score: 0

      I know this has saved my butt, but only because a windows update messed up my PC...

    78. Re:Why just home? by jafac · · Score: 1

      Having worked on a couple of backup/replication products, I can say that there are many, many different ways to do this. Probably one of the neatest ways I saw (probably NT only) was to implement a "filter driver" (NTFS is implemented as a filter driver - it's a Microsoft term). The filter driver our backup product used would intercept write calls, and then for file blocks that were changed, copy only those to the backup copy. Only a bit more intelligence would be required at this level to work that into a versioning system, instead of duplicating a change to a backup copy, instead, it'd would create a delta file. The disk would only store deltas - albeit fairly inefficient deltas. But for a multi-gigabyte file with just a few byte-changes, it would save on space enormously, and save the time it takes to scan through the entire file for just the few bytes that changed. The extra storage space over the latter scenario is worth the overhead, especially since IO is already broken down into blocks by the filter driver.

      There's also different logic you want to use to handle other types of edits. Like a deletion - that effectively shifts the bits from that point in your file onward, which would create a huge list of changed blocks, that really aren't changed - so you do pattern-matching, and instead, only duplicate the block that contains the deletion, and represent the shifted blocks thereafter.

      Then if there's an insertion, same deal.

      The real question is, what's better, a forward delta or reverse delta? With a forward delta, you keep your entire original file version on line, and store changes as deltas - and if someone wants the latest version, or an earlier version, you've got to reconstruct the file. With reverse delta, you put the overhead up front, and construct the latest version of the file intact (second, latest, because the latest is the actual file). Then for progressively earlier versions, you just apply successive deltas. The oldest file takes the most overhead to reconstruct, since it's the least likely version a person would want to get to. Basically, these two methods determine where the overhead is. I favor the reverse-delta method, because, even though it's slower up-front, it saves time when you need to roll back by one version - the most likely scenario. Ideally, the user could configure the system to maybe keep a few complete copies of the latest three versions or so, and just deltas of older versions. This would take up more space, but save time when rolling back.

      As implemented as a backup product, of course, you need a database to track all the changes. But as implemented as a file system extension - the deltas can be stored natively, using filesystem metadata. All those years working on products like this - I thought this would be the coolest way to do it. But nobody wanted to pursue that, because, well, unless you're an OS vendor - there's no profit in writing a filesystem that's just going to be pushed out by the defacto standard filesystem anyway.

      I'm not as well-versed into how Linux/UFS works, so I don't know how this would be implemented on Linux.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    79. Re:Why just home? by Mikkeles · · Score: 1

      As far as DEC is concerned, it's even older: file versioning was found on RSX-11 (at least) running on the PDP-11. The versioning numbers were in octal, though (history: think 6 bit bytes and 36 bit words). I don't remember if TOPS-10 had this feature (I didn't use it much).

      --
      Great minds think alike; fools seldom differ.
    80. Re:Why just home? by Khelder · · Score: 1

      This paper describes a filesystem (called S4) that keeps versions of every write(), up to some specified time window. You can mount a read-only version of the filesystem as it existed at any arbitrary time in the past (up to the size of the window). For a lot of people, they think several weeks would be a reasonable window.

    81. Re:Why just home? by Meshach · · Score: 1
      So does Windows XP Pro. It's called "System Restore".
      If my memory of working in tech support serves me right windows xp system restore only backs up your registry

      It's purpose is to be able to remove bad hardware and/or software that does not provide an effective ininstall routine. It doesn't back up any "data" files
      --
      "Maybe this world is another planet's hell"
      Aldous Huxley
  14. um outdated ? Hell I have the paper print of this. by Anonymous Coward · · Score: 0

    Posted on Sunday, September 01, 2002 by Joey Hess

    It is a great article, don't get me wrong... it is just a little over a year old.... news ?

  15. Re:Ugh... by Anonymous Coward · · Score: 0

    I hate CVS, and I have my Debian home directory on Subversion without data loss or another problem.

  16. Or just RCS by A+nonymous+Coward · · Score: 2, Interesting

    I put RCS subdirs all over, check files in and out.

    It also makes complete OS upgrades easier, I use the RCS subdirs to tell what I changed from the base install.

    1. Re:Or just RCS by Anonymous Coward · · Score: 0

      Could you possibly detail how to set something like this up?

      Thanks!

    2. Re:Or just RCS by pHDNgell · · Score: 5, Informative

      I have a script that does all of this for me:

      http://bleu.west.spy.net/~dustin/soft/filemonitor

      You point it at a dir and run it from cron nightly. It also gives you a handy nightly mail telling you what changed. Excellent for those late night changes to systems where you don't remember what you did...or if someone else made some late night changes that you'd like to undo.

      --
      -- The world is watching America, and America is watching TV.
    3. Re:Or just RCS by A+nonymous+Coward · · Score: 2
      1. Create an RCS subdir in the dir you want to version control.
      2. For each file in that dir that you want to version control, use ci -i filename. It will ask for some kind of overall comment, an empty message is fine.
      3. The file has been removed from the directory; use co -u to get a read only copy back.
      4. The file is now read only. When you want to edit it, use co -l to check it out locked and writeable.
      5. Edit the file with your favorite editor, or whatever else you want to do with it.
      6. Use ci -u to check in this latest version and make it read only again.

      Use man rcs to see details on how to undo versions, check out specific versions, etc.

      Also use that same man command to double check these instructions.

      Some editors have RCS and CVS version control built in, such as emacs. Probably others too. Maybe vim.
  17. Re: an innovative solution by Anonymous Coward · · Score: 4, Funny

    ... quick, patent it!

  18. Ugh! by Anonymous Coward · · Score: 0

    Who has been checking in these skanky whores to ~/porn ?

  19. Ehhh, again, years behind NT. by GlassUser · · Score: 0, Flamebait

    I've been doing this for almost two years on NT. Keep a roaming profile on a DFS root. I keep a backend server separate so I always have a replicated backup. It also keeps replicated with other sites (work and the other office). Sigh.

    1. Re:Ehhh, again, years behind NT. by FuzzieNorn · · Score: 1

      Did you miss the bit where CVS keeps version changes?

    2. Re:Ehhh, again, years behind NT. by swtaarrs · · Score: 1

      Errr.. you do realize that CVS has been around for longer than two years, right? Just because it's now being reported on /. doesn't mean that it's never been done before..

    3. Re:Ehhh, again, years behind NT. by Anonymous Coward · · Score: 0

      Yes, and that has been possible with various similar solutions on Unix for years, as well. Since well before NT existed.

      The article was about somebody coming up with an unusual way of managing his home directory.

  20. slashdotted... by jazznjava · · Score: 0

    I guess he forgot to put his website on CVS

    1. Re:slashdotted... by cuppm · · Score: 2, Informative

      Joey shows you how to keep track of everything with CVS.

      I keep my life in a CVS repository. For the past two years, every file I've created and worked on, every e-mail I've sent or received and every config file I've tweaked have all been checked into my CVS archive. When I tell people about this, they invariably respond, ``You're crazy!''

      After all, CVS is meant for managing discrete bodies of code, such as free software programs that are worked on and available to a lot of people or in-house projects that are collaboratively developed by several employees. CVS has a reputation of being a pain to deal with, and it has a lot of crufty bits that regularly drive users up the wall, like its mistreatment of directories. Why inflict the pain of CVS on yourself if you don't have to? Why do it on such a scale that it affects nearly everything you do with your computer?

      I get three major benefits from keeping my whole home directory in CVS: home directory replication, history and distributed backups. The first of these is what originally drove me to CVS for my whole home directory. At the time, I had a home desktop machine, two laptops and a desktop machine at work. Rounding this out were perhaps 20 remote accounts on various systems around the world and many systems around the workplace that I might randomly find myself logging in to. I used all of these accounts for working on the same projects and already was using CVS for those projects.

      I'm a conservative guy when it comes to my computing environment (I've used the same wallpaper image for the past five years), and at the same time I'm always making a lot of little tweaks to improve things. Whenever I go to work and something wasn't just like I had tweaked it the night before, I'd feel a jarring disconnect, and annoyingly copy over whatever the change was. When I sat down at some other system at work, to burn a CD perhaps, and found a bare Bash shell instead of the heavily customized environment I've built up over the past ten years, it was even worse. The plethora of environments, each imperfectly customized to my needs by varying degrees, was really getting on my nerves. So one day I cracked and sat down and began to feed my whole home directory into CVS.

      It worked astonishingly well. After a few weeks of tweaking and importing I had everything working and began developing some new habits. Every morning (er, afternoon) when I came into work, I'd cvs up while I read the morning mail. In the evening, I'd cvs commit and then update my laptop for the trip home. When I got home, I'd sync up again, dive right back into whatever I'd been doing at work and keep on rolling until late at night--when I committed, went to bed and began the cycle all over again. As for the systems I used less frequently, like the CD burner machine, I'd just update when I got annoyed at them for being a trifle out of date.

      It only took a few more weeks before the advantage of having a history of everything I'd done began to show up. It wasn't a real surprise because having a history of past versions of a project is one of the reasons to use CVS in the first place, but it's very cool to have it suddenly apply to every file you own. When I broke my .zshrc or .procmailrc, I could roll back to the previous day's or look back and see when I made the change and why. It's very handy to be able to run cvs diff on your kernel config file and see how make xconfig changed it. It's great to be able to recover files you deleted or delete files because they're not relevant and still know you've not really lost them. For those amateur historians among us, it's very cool to be able to check out one's system as it looked one full year ago and poke around and discover how everything has evolved over time.

      The final major benefit took some time to become clear. Linus Torvalds once said, ``Only wimps use tape backup: real men just upload their important stuff on FTP and let the rest of the world mirror it.'' I'm not a real enough

      --
      I have no sig, the eyebrows seal the deal. That's right. Eyebrows.
  21. Sourceforge by Smitty825 · · Score: 5, Funny

    I'll put my home directory on Sourceforge! Everyone can now help me maintain it!

    --

    Doh!
    1. Re:Sourceforge by AvantLegion · · Score: 5, Funny
      I patched your political science essay.

      I fixed all the anti-Bush bugs.

    2. Re:Sourceforge by agentzer0 · · Score: 1

      *sigh* I accidentally did that once, learning how to use cvs. whoops :)

      they were nice enough to clean it out for me, once i got over my stupidity enough to ask ;)

    3. Re:Sourceforge by Anonymous Coward · · Score: 0

      whoever modded this as funny is toast. i just meta-modded you unfunny.

    4. Re:Sourceforge by AvantLegion · · Score: 1
      So much for librals having a sense of humor!

      I would've written the joke if it was a Democratic president that all of Slashdot hated. The point is that it's a common Slashdot theme.

    5. Re:Sourceforge by Anonymous Coward · · Score: 0

      That's great, except that it was you who introduced the political slander into the discussion.

    6. Re:Sourceforge by Prien715 · · Score: 1

      And as a result, your essay consists of the single word "the". Thank you.

      --Brought to you from the Department of Homeland Security...Now Policing Ideas

      --
      -- Political fascism requires a Fuhrer.
    7. Re:Sourceforge by aminorex · · Score: 1

      I couldn't used to spell libral, but then
      I voted for Bush, and now I are one!

      --
      -I like my women like I like my tea: green-
  22. Joke, not serious comment ,idiot by Anonymous Coward · · Score: 0

    You missed a comma by the way. Ironic in an Alanys Morisette way perchance?

  23. How does he handle renaming and erasing in CVS? by Anonymous Coward · · Score: 5, Interesting

    'cause CVS loses the history in these operations.

    1. Re:How does he handle renaming and erasing in CVS? by Cramer · · Score: 1

      RCS magic behind the scenes. (login to the CVS server and mv the RCS file.)

    2. Re:How does he handle renaming and erasing in CVS? by Anonymous Coward · · Score: 0

      login to the CVS server and mv the RCS file

      Surely, you're joking.
      No sane person would want to do that.

    3. Re:How does he handle renaming and erasing in CVS? by meowsqueak · · Score: 1

      Why not? CVS storage is per-file so you can happily rename/move/delete the rcs ,v files if you're careful. Heck, you can even edit them. I'm not saying that's a wise thing to do, but it's not insane.

      Moving the rcs files around will make your repository history inconsistent however (but the individual file history/log will be fine) which is a problem is you actually rely on it.

    4. Re:How does he handle renaming and erasing in CVS? by neonleonb · · Score: 5, Interesting

      Alias mv to execute some shell script:
      mv $1 $2
      cvs remove $1
      cvs add $2
      cvs commit -m "move $1 $2" $1 $2
      You might want to add some script to deal with the case where $2 is a directory, but that shouldn't be too hard.

      That way, information about the move and the previous file status is kept.

    5. Re:How does he handle renaming and erasing in CVS? by Anonymous Coward · · Score: 0

      It's not that much of trouble if you only do it once in a while in development work, but you would have to be a bit crazy to that every time you rename or move a file in your home directory. The script solution offered earlier in the thread is a bit better, but even that doesn't account for changes made in GUI programs.

    6. Re:How does he handle renaming and erasing in CVS? by Trejkaz · · Score: 1

      Then you have a problem, because cvs log $2 will only show the addition of the file, not any of its version history. In a good system the log for a file should show everything since the file was created, including the fact that it's been moved.

      And in fact, a directory is much worse because in CVS even if you remove all the files in a directory, that directory still checks out when you do an update -d (which you would be doing, in this synchronisation scenario.) Use this system for long enough without a further script to clean empty directories, and you will quickly find your home directory too trashed up to use.

      And let's not go into binary files. If you downloaded 10 revisions of a 1Mb source package, it would be 10Mb stored on disk. Extrapolate to the number of binary files you have in your home directory. I typically use mine to store any binary packages I build for my user which aren't available in portage; not a lot, but users of other distributions might find their packages less up-to-date than Gentoo's.

      I guess if you have a 100Tb disk sitting around doing nothing it isn't such a bad idea, though I would still be inclined to use subversion, or something else with similar abilities.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    7. Re:How does he handle renaming and erasing in CVS? by neonleonb · · Score: 1

      The cvs log of $2 will show the addition of the file, but the log of the file's creation will show that it is a renaming, so you can access the rest of the history from file 1's history. It's not perfect, but it works.

      I wasn't claiming that CVS was the solution to all problems. I'm sure that there's a better solution out there. I just wanted to point out that there is a partial workaround.

  24. CVS, eh? by Kourino · · Score: 4, Informative

    I wonder why CVS, and not something more advanced, like Arch or Subversion? Especially since he outright complains about common limitations in CVS, like moving files and dealing with directories at all. If he's hoping, as he says, "for a better replacement some day", why not see what the present has to offer?

    I mean, that's not to say that alternative systems are perfect, either. I'm going through the process of learning arch now. There's a learning curve, but not nearly as big as it's made out to be. Still, using something else (almost anything else) would probably help on things like the merging issues, especially since he mentions that sometimes it's a pain keeping things in sync between three of his machines.

    1. Re:CVS, eh? by ka9dgx · · Score: 1
      I'm going to guess, and say it's because CVS farm more is likely to be installed on a given machine. I could be wrong.

      --Mike--

    2. Re:CVS, eh? by self+assembled+struc · · Score: 4, Informative

      well,

      have you every tried to install and set up subversion?

      plus, after years and years of development, it's still point-oh-something and specifically states they can only guarentee that your repository can be read with x number of versions after the version that created it.

      as for arch, i've been looking into it, but it's still a hack onto cvs.

      subversion gets some of it right, but at my old company we used perforce and honestly, i'm spoiled and i've been trying to find a free (just as in beer, free as in speech would be nice, but i just want to get my work done quickly and without hassle) source control client that can mimic the functionality and stability of perforce, and i've yet to find one.

      too bad my new place won't shell out the $650/seat for the license...

    3. Re:CVS, eh? by Kourino · · Score: 1

      Heh. I have heard that Subversion archives are just awful to get set up right.

      How do you mean that "arch is a hack onto CVS"? (I guess I had forgotten about archive format stability, though.)

    4. Re:CVS, eh? by Anonymous Coward · · Score: 1

      Arch isn't a hack on top of CVS. Perhaps you are confusing CVS being a hack on top of RCS?

    5. Re:CVS, eh? by pHDNgell · · Score: 2, Informative

      as for arch, i've been looking into it, but it's still a hack onto cvs.

      WTF are you talking about? Arch is only related to CVS in that it's in the same application category.

      i'm spoiled and i've been trying to find a free (just as in beer, free as in speech would be nice, but i just want to get my work done quickly and without hassle) source control client that can mimic the functionality and stability of perforce, and i've yet to find one.

      We use perforce at work and I'm fed up with the lack of functionality compared to what I get from arch (which I use for most of my home projects and home dir and stuff).

      We have a few integrations with other software that makes perforce tolerable (bug tracking mostly). These could be done with arch as well, but it's not worth it to me yet.

      --
      -- The world is watching America, and America is watching TV.
    6. Re:CVS, eh? by stefanlasiewski · · Score: 1

      Subversion

      The article was written in September 2002. SVN was at 0.14 then.

      --
      "Can of worms? The can is open... the worms are everywhere."
    7. Re:CVS, eh? by vslashg · · Score: 5, Informative

      I agree that Perforce is awesome. But here's something you may not know -- Perforce is completely free for the kind of thing this article is talking about doing.

      Specifically, Perforce is available for download here. Without a license, it only supports two users and two clientspecs... not enough to manage a project shared among developers, but wonderful for managing your code in home projects. More good news: Perforce is free-as-in-beer for use in developing open source projects.

      (This isn't meant as a holy war... I know that many of you might think that source control package Foo is better than Perforce. You may be right. I'm just pointing out some Perforce licensing facts for those who like Perforce.)

    8. Re:CVS, eh? by Anonymous Coward · · Score: 1, Informative

      Heh. I have heard that Subversion archives are just awful to get set up right.

      apt-get install subversion
      edit a file in /etc/apache2/..
      svnadmin create /a/repository

      voila! (in Debian unstable)

    9. Re:CVS, eh? by retinaburn · · Score: 2, Informative

      If you look at the bottom of the page, he does in fact say that he uses Subversion. He just hasn't updated the article to show this.

    10. Re:CVS, eh? by Anonymous Coward · · Score: 0

      The article is over a year old.

      IIRC, Joey now uses subversion.

    11. Re:CVS, eh? by JuliaNZ · · Score: 1

      as for arch, i've been looking into it, but it's still a hack onto cvs.

      Arch is a hack onto CVS how? It doesn't rely on a single central repository, doesn't store things in RCS-format files, doesn't screw up on binaries, and imposes a rigid category-branch-version structure that's absent from CVS.

      About the only commonality seems to be that Arch started as a bunch of shell scripts, same as CVS did.

      OTOH the Arch commands can be very verbose and it's "maze of twisty little directories, all alike" storage model can make for some very long path lengths, so you can forget about ever being able to use it for anything real-world on Windows.

    12. Re:CVS, eh? by Anonymous Coward · · Score: 0

      have you every tried to install and set up subversion?

      Why yes. "apt-get install subversion"... Ouch, my brian hurts now... can't continue. Subversion, to, hard, to, install.

      Pffffft, whatever. I've been using Subversion for a long time. It's easy and is so much more functional than CVS.

    13. Re:CVS, eh? by aardvarkjoe · · Score: 4, Informative

      have you every tried to install and set up subversion?

      Subversion is pretty easy to install and set up as long as you don't use the Apache interface. It's pretty much just a matter of downloading the subversion and libdb archives, and doing "./configure; make; make install". I've never had any problems with it, and it is rapidly approaching version 1.0.

      One of the main things that they ought to make clear is that the http interface is a nightmare to set up -- with the exception of making publically-accessible repositories, using the svnserve method over ssh is a far better choice.

      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    14. Re:CVS, eh? by self+assembled+struc · · Score: 1

      yeah, actually I use perforce at home for all my files (similar to this cvs home directory thing, but with better results for me).

      sadly we are more than 2 developers, and therefore would require more than 2 clients, of which the free version isn't licensed. and we also write our software for profit, so we can't even go that route.

      but yeah, i want to write perforce and tell them to give my old job a price break. after four years i'm just 100% spoiled (of course i've never used bitkeeper, et al...)

    15. Re:CVS, eh? by Anonymous Coward · · Score: 0

      as for arch, i've been looking into it, but it's still a hack onto cvs.

      You're either a liar or an idiot.

      arch shares nothing with cvs. Its version control model shares almost nothing in common with CVS either. It has some parallels with Bitkeeper.

    16. Re:CVS, eh? by openbear · · Score: 1

      More good news: Perforce is free-as-in-beer for use in developing open source projects.

      That sounded good, so I read their Open Source FAQ. After seeing the following ...

      The End User License Agreement for Open Source Software Development requires that Perforce Software be granted read-only access to the Perforce server. What do I need to do to comply?

      We will assume, unless otherwise notified, that we will be able to access your server at the server's licensed IP address, port 1666, using the Perforce user name "anonymous". When this is not true, you should include information for contacting your server when you fill out the license agreement.


      ... I immediately decided to stick with Unison.

      While I embrace Open Source, I really don't feel comfortable with anyone at Perforce being able to "browse" through my home directory. Some of my software projects are open source, however my personal life and the contents of my home directory are not.

  25. reiserfs by Space+cowboy · · Score: 1

    Isn't this the sort of plug-in thing that Reiserfs is supposed to make a lot easier to do at a fundamental level ?

    As I understand it, you register callbacks on the atomic operations of the FS, and your code gets run with appropriate parameters before/after whatever. A bit like SQL triggers...

    Simon.

    --
    Physicists get Hadrons!
  26. Innovative solution? by matt-fu · · Score: 0, Troll

    While this is a cool idea, it's not even remotely innovative. Can we please put up some kind of first year Unix user filter for story submissions?

  27. auto-backups the plan9 way by DrSkwid · · Score: 4, Interesting

    Plan9 has the mantra : "file creation is forever"

    Automated incremental backups are a way of life.

    With Venti one can even back up two windows/linux machines and *not* use up disk space for commonly used blocks, so backing up 100 machines wont use up the usual 1Gb each for the duplicate libs/windows directories.

    The yesterday command give you the power to browse back through your life

    Find what has changed in the C library since March 1:

    yesterday -d -0301 /sys/src/libc/port/*.c

    When did you say this guy did the innovation again?

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    1. Re:auto-backups the plan9 way by Rosco+P.+Coltrane · · Score: 5, Funny

      Right, so on plan9, you can recover all your previous file versions, for example, letter_to_boss.txt :

      v1.0: "You stupid fuck, why don't you give me a raise some day?"

      v1.1: "You tight-pocketed capitalist, isn't it high time you gave me a raise?"

      v1.2: "Hey Boss, I really think I deserve a raise, I've been working on this project for so long."

      v1.3: "Hello Boss, I respectfully request that you should consider giving me a raise, as I think have proven to be a reliable, hard-working employee. Please?"

      v1.4-FINAL: "Dear Mr. Schmoe, I wish to apologize in advance for stopping work on our most important project for five minutes, but I would like to present an idea to you : you see, ever since I have started working at 6-pack computing, I've tried to be a model employee and ... ... ..."

      --
      "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    2. Re:auto-backups the plan9 way by Karellen · · Score: 1

      Why the hell would you back up the binaries in your system directories? You've already got all of that on CD somewhere. That's the most pointless thing I've ever heard of.

      Back up your system config yes, but that's all in `/etc`.

      For other software you've downloaded, written or otherwise acquired, backup their config files from `/usr/local/etc` and keep _one_ copy of the sources that will probably be in `/usr/local/src` or `/usr/local/share/src`.

      So, that's all the important configuration bits backed up. With that you should be able to get a new system looking like this one (in the case of catastrophic hardware failure) by installing from scratch and then copying your old configs into place.

      What else? Ah yes, the users. Backup `/home`. Nice and easy.

      Last but by no means least, backup selected portions of `/var`. Databases, cvs, the mail system, logs; loads of programs keep repositories of data here that you'll need to make copies of. Beware though, many important data repositories (such as database stores) found here aren't neccessarily backup-able; you may have to run a tool that produces a `safe` backup file that can be re-loaded on startup. This is the most important bit to be careful backing up, it's also the best reason why just copying your disk wholesale may only be giving you a false sense of security.

      Just copying your whole disk is crude and (as explained above) not neccessarily effective. Backup with care, and you will not only save masses of space in your backups reducing the time it takes to make them (and, more importantly, reducing the amount of time it takes to recover from disasters), but you're also more likely to have a backup you can actually use in the event of a disaster.

      --
      Why doesn't the gene pool have a life guard?
    3. Re:auto-backups the plan9 way by DrSkwid · · Score: 1

      only if there is a dump in between revisions. The default is once per day.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    4. Re:auto-backups the plan9 way by DrSkwid · · Score: 1

      I wasn't necessarily advocating such a backup policy.

      plan9's backup system is selective.

      However, I would argue that having a record of the changing system binaries is useful for tracking changes.

      No more "I haven't touched anything and it just broke".

      You can install new software and see what was changed in the process.

      Saving Windows disks wholesale would seem prudent with regard to dll hell. Better to have the option of full recovery than save a few bytes.

      But, like I said, you can choose what to keep.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  28. Just trying to sell more advertising by Nuclear+Elephant · · Score: 0, Troll

    And how the hell is this newsworthy? it's not...slashdot has once again gone a little further downhill in the quality of their news; this time so that we'll look at their new pretty banners and earn them double the cash every time we look at an article. now that slashdot is obviously heading in the commercial direction maybe someone ought to consider putting together a new geek news site?

    1. Re:Just trying to sell more advertising by AJWM · · Score: 1

      The problem with putting together a new geek news site is that, by definition, it'll be slashdotted every day.

      --
      -- Alastair
    2. Re:Just trying to sell more advertising by Nuclear+Elephant · · Score: 1

      A bunch of geeks whining about bandwidth..isn't that original

    3. Re:Just trying to sell more advertising by Anonymous Coward · · Score: 0

      I generally don't mind looking at a few ads in exchange for good content, but I added "0.0.0.0 ads.osdn.com" to my HOSTS when they started advertising this filth. Taco and Hemo might have cushy jobs, but the rest of us would like to make a living...

  29. Temporary solution for the few? by xanthines-R-yummy · · Score: 1
    Correct me if I'm wrong, but if everyone from /. did this, wouldn't CVS collapse? I mean, he's got a GB (4GB overall, I guess). Multiply that by 1000's.... My university only gives out 100M for webdrive type stuff for its staff, and even that amount was a pain to get.

    What's the point of saturation?

    1. Re:Temporary solution for the few? by AuMatar · · Score: 1

      Umm, CVS isn't on a web server somewhere at one central location. You run it on your own machine.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    2. Re:Temporary solution for the few? by Anonymous Coward · · Score: 0

      >> Umm, CVS isn't on a web server somewhere at one central location. You run it on your own machine.

      He's probably on a server-thin client network. His home must indeed be in a server. {BOFH} And 100MB limits how much mp3 he can have... :-) {/BOFH}

  30. Subversion rocks! by Anonymous Coward · · Score: 2, Interesting

    Obligatory link to Subversion, since this new-fangled hypertext media allows it.

    (With a hint of sarcasm for you mentioning it but not linking!)

    From personal experience it seems to be quite usable already. Although I did find it hard to install and get everything set up properly (path problems, etc) partly because I'm a Visual SourceSafe refugee. I'm still not quite used to the pathing schemes and checkin model and am still confused by wanting to assign a VSS-style 'working directory' to a Subversion folder and not knowing what to do about that.

    1. Re:Subversion rocks! by Leomania · · Score: 1

      Yeah yeah, it was a fast post. Like this one. Thought about it but decided to hit the "Submit" button.

      Thanks for taking up my slack.

      - Leo

      --
      You don't use science to show that you're right, you use science to become right.
  31. Oh I like that by The+Munger · · Score: 3, Insightful

    That's a smart way of doing things. I've found version control to be worthwhile on even single user projects. Having the same kind of backup/restore and history tracking on every one of your files just makes sense. I'm suprised no-one has done this sooner.

    In a slightly more abstract sense, it provides a 'working set' of documents on your computer. Comments on your version history adds meta-data to files that is time-based. Most systems at the moment add meta-data that is for the current file. Imagine, you check in some files with a comment like 'Project: holiday snaps 03'. Then later on, you use one of those files in a presentation 'Project: report for Bill 03'. With standardised formatting of such tags, the file keeps with it the idea that it has been used with multiple projects at different times. That's a powerful method of grouping.

    Ever been in the situation where a file belongs with multiple projects? With your standard directory structures, you might put it in one directory and shortcut/alias/whatever it in the other (or maybe make a second copy). It's pretty ugly right? What if you could say, this file belongs to both of these projects, and you could even provide the old version that was used in another project. OK, so all of that would require some more automation - we can dream can't we?

    That has a lot of possibilities.

    --
    Refuse to make a statement in your sig!
  32. Conservative eh? by Anonymous Coward · · Score: 0

    I'm a conservative guy when it comes to my computing environment (I've used the same wallpaper image for the past five years)

    Pff, big deal, I've used the same toilet paper for 5 years! How about that for conservative?

  33. ssh private keys by smcavoy · · Score: 2, Insightful

    somehow I don't like the idea of my private ssh keys being sown like a seed across a number of systems.
    To much of a headace worrying about where they are, were they deleted properly... etc.

    1. Re:ssh private keys by ezh · · Score: 1
      somehow I don't like the idea of my private ssh keys being sown like a seed across a number of systems.
      To much of a headace worrying about where they are, were they deleted properly... etc.

      I believe that if security is of great concern to you, you should not use any machines except your own in the first place to store and work with your files.

      Plus, you are not required to use private keys for CVS authentication anyway, your password would do just fine (of course, you'll have to enter it each time you want to access CVS on your remote machine)

    2. Re:ssh private keys by dedave · · Score: 4, Informative

      This isn't insightful. He specifically states in the article that he has a .hide directory that _doesn't_ get "sown like seeds across a number of systems" just for this very reason. Bah.

    3. Re:ssh private keys by starbuzz · · Score: 1
      I have multiple homes, and often use ssh. The private keys are not stored on all the homes, though. It's convenient to still share the ssh auxiliary files.

      foo-prompt> cat ~/.ssh/.cvsignore
      random*
      id*
      foo-prompt>

    4. Re:ssh private keys by Slime-dogg · · Score: 2, Funny

      You read the article? You must be new here.




      Bows before a clapping audience. Such karma-whoring is to be admired.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
  34. VMS file versioning was fantasic by Anonymous Coward · · Score: 0

    ... until you needed to recover something

  35. automate this! by danharan · · Score: 1

    Something like this that ran in the background would be great. Anytime you created a file/dir, it would do so in CVS, just as when you re-save a file, it automatically versions it. And for GUI-using weenies like me, a right-click should give me a "View file history" option.

    --
    Information: "I want to be anthropomorphized"
    1. Re:automate this! by omega9 · · Score: 1

      Sounds like you want DFS with shadowcopy. These are only buzzwords I hear on the T.V. sound I could be horribly wrong.

      --
      I'm against picketing, but I don't know how to show it.
    2. Re:automate this! by metachimp · · Score: 1

      You could save your company millions of dollars, and then they'll pay attention to you.

      --
      The system has failed you, don't fail yourself. --Billy Bragg
  36. This just in, if you actually try to do backups... by netsavior · · Score: 1

    you will have backups. this as innovative as saying: Make backups of your system.

  37. whoa by Anonymous Coward · · Score: 0

    I have CVS repositories in my home dir .. would those get versioned too? *head warps into the fourth dimension*.

    "Hey bob! Can we roll back the CVS repository to yesterday's version so I can re-commit a better version of my code?"

  38. Great for Mozilla settings! by adamfranco · · Score: 4, Interesting

    I currently store parts of my .thunderbird and .phoenix directories in CVS and do the commit/update to sync work and home. In general it works pretty well, though not all my settings translate well between OS X (work) and Red Hat (home). For this reason in particular, extensions are not in my CVS and this makes keeping stuff custumized a bit of a pain still.

    --
    "When ideology and theology couple, their offspring are not always bad but they are always blind." -- Bill Moyers
    1. Re:Great for Mozilla settings! by Anonymous Coward · · Score: 0

      I do this same thing (except using Subversion) but for different reasons.

      You see, Firebird tends to hold files open a lot (cookies and sometimes bookmarks). And I use ReiserFS. If the system crashes while I'm using Firebird often times that damn ReiserFS will lose data on any open files. I really hate losing my cookies and/or bookmarks. Reiser is fast, that's for sure, but it ain't safe during crashes.

  39. Pun Intended... by Vaulter · · Score: 5, Funny


    "Hold on a minute, I've got to check out this porn."

    --
    I don't have a sig...Do you??
  40. Umm... by Anonymous Coward · · Score: 0

    What is the problem we have all faced? And what is CVS?

    1. Re:Umm... by Anonymous Coward · · Score: 0

      CVS is a drug store chain. I have no idea what problem would be solved by putting your home directory in a drug store. I hate going into drug stores, because everyone, even the employees, is looking at you like "I wonder what medication _he's_ on." even if you're just there to drop off some film. Okay, nobody drops off film any more, but you know what I mean. Buying a greeting card, or something. Plus, sick people are always in drug stores buying medicine. Who wants to be around sick people?

    2. Re:Umm... by metachimp · · Score: 1

      That is fucking classic... I can just imagine rummaging through the shampoo for my .emacs file.

      --
      The system has failed you, don't fail yourself. --Billy Bragg
  41. Re:Don't forget... by Anonymous Coward · · Score: 0

    SCO$699/$1499FeeTroll posts are always successful first posts. Don't tarnish the image you cock-smoking teabagger.

  42. christ on a cubesteak - s/innovative/idiotic by Anonymous Coward · · Score: 0

    ok .. this isn't innovative .. this is stupid ..
    why not just run backups on your homedir and
    export it? .. now you have to deal with the added
    headache delays of checkin and checkout

    but seeing this post is good .. it simply further
    illustrates the incompetence of the slashdot
    crew

  43. unison is probably a better solution by penguin7of9 · · Score: 4, Interesting

    My recommendation: use the Unison file synchronizer to keep multiple copies of your home directory in sync.

    It's not quite the same thing as CVS, but that's probably a good thing. Most importantly, it won't give you versioning. On the other hand, it is symmetric (meaning, none of the copies are distinguished) and it is much less hassle to use. Also, you can define custom merge methods to automate merging of things like mailboxes. Unison is great for keeping a home directory (or portions of it) in sync between different desktops, and between desktops and laptops.

    Note that for live backups, rsync is probably still the best choice because you want something unidirectional.

    1. Re:unison is probably a better solution by smartin · · Score: 1

      The problem with file synchronization that is solved by CVS and not by unison is that cvs will merge your changes. This keeps you from being locked out of a file at home that you know you've changed at work and forgot to commit. I'd love to see more file synchronization that can merge the content rather than just move files around as a whole.

      --
      The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
    2. Re:unison is probably a better solution by mithras+the+prophet · · Score: 1

      unison will do a diff on text files that have changed in both places; it requires a manual ok of both sets of changes, but it's pretty easy to accept the changes from work and home, or choose between conflicting changes, etc.

      --
      four nine eighteen twenty-7 thirty-nine forty-7 fiftyeight sixty-nine seventy-9 eighty-8 one-hundred-and-nine one-twenty
    3. Re:unison is probably a better solution by Salamander · · Score: 1
      It's not quite the same thing as CVS, but that's probably a good thing. Most importantly, it won't give you versioning.

      That's actually the key feature here. Unison is great if you want to have just the most recent copy available. Rsync can actually be used in that fashion too, BTW, right out of the box, and it works well too. However, versioning allows you to go back to the most useful prior version of the file, not just the most recent. What if you finally managed to get your configuration right last week, but that version got overwritten by the version with "just one more tweak" that was used for this week's rsync/unison run? Your backup is just as corrupt as your working version now. Backup becomes much more useful when there are multiple restore points, and versioning is an intuitive way to keep track of those restore points. Without that, there are several common "oops" scenarios that backups won't solve.

      I guess I should mention, just for the sake of full disclosure (not because it's really relevant) that I'm a product architect at a company seeking to do provide just this sort of "go back to any time" functionality at the block level. Of course I have some strong opinions about the relative utility of "single point in time" vs. continuous backup/restoration, or I wouldn't have taken the job.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    4. Re:unison is probably a better solution by PD · · Score: 1

      I also think that would be a nice thing, but here's a thought:

      If you can ssh from work to your home server, then you can just always leave yourself logged into that home server, but with a port forwarded back to the work server. So, if you forgot to run unison on the work server, you can login to the work machine from home and do it.

      What I do is synchronise my desktop and laptop through a common file server. Unison is transitive like that. My laptop goes wherever I go, so I can't forget to check in a file at work. :-)

    5. Re:unison is probably a better solution by penguin7of9 · · Score: 2, Interesting

      Rsync can actually be used in that fashion too, BTW, right out of the box, and it works well too.

      No, it cannot. rsync is a uni-directional file synchronizer and it doesn't have an interactive interface. unison is a bi-directional file synchronizer with non-timestamp-based change detection and a GUI for resolving conflicts. The two are completely different things. unison does much more than rsync.

      However, versioning allows you to go back to the most useful prior version of the file, not just the most recent. What if you finally managed to get your configuration right last week, but that version got overwritten by the version with "just one more tweak" that was used for this week's rsync/unison run?

      Unison can create histories and backups if you like, even on a path or type-dependent basis. In several years of using it, I have never bothered because all the applications I use already keep their own backups or histories. (Incidentally, rsync can keep version histories and backups, too.)

      I guess I should mention, just for the sake of full disclosure (not because it's really relevant) that I'm a product architect at a company seeking to do provide just this sort of "go back to any time" functionality at the block level. Of course I have some strong opinions about the relative utility of "single point in time" vs. continuous backup/restoration, or I wouldn't have taken the job.

      Such systems have been around since at least the 1980's. Most people who have used them (including myself) have found them to be profoundly useless even though they worked exactly as advertised and were really easy to use.

      Over several decades of experience with such systems, people generally have come to the conclusion that versioning and histories are application-dependent and best left to applications. That's why systems like Emacs, Microsoft Word, etc. have that sort of thing built in and why people use CVS on a per-project basis.

      (And, in the interest of full disclosure, I have no commercial interest whatsoever in any of these systems.)

    6. Re:unison is probably a better solution by penguin7of9 · · Score: 1

      As I was mentioning, unison has the option to merge files. It also has the option to keep old versions of files, if you like, and the class of files for which that happens is configurable.

    7. Re:unison is probably a better solution by Salamander · · Score: 1
      rsync is a uni-directional file synchronizer and it doesn't have an interactive interface

      Yes, but it's trivial to run it twice, once in each direction, with arguments that result in updates propagating in both directions. An interactive interface in this context is definitely in that category you refer to as "profoundly useless"; if I want to synchronize directories I usually have a pretty good idea how conflicts should be resolved and I don't want to be pestered to specify in each case. If I have versioning I can even resolve conflicts the "wrong" way and it's OK because both versions end up in the repository anyway.

      Such systems have been around since at least the 1980's. Most people who have used them (including myself) have found them to be profoundly useless even though they worked exactly as advertised and were really easy to use.

      Name one. No filesystem-level stuff please, and no snapshots either. I've worked on both kinds of systems before, and they're not what I was talking about. Block level, continuous rollback capability. Got it? Even the more limited kinds of systems, BTW, have proven immensely useful to people, which is probably why EMC and NetApp rake in billions of dollars selling them. I know dozens of people from hands-on sysadmins to Fortune 500 CIOs who have relied on them for years. Just because you couldn't figure out how to take advantage of them doesn't mean nobody else did. Some people are just smarter than others.

      And, in the interest of full disclosure, I have no commercial interest whatsoever in any of these systems.)

      ...or in anything else, I'll guess. I'll wait for someone with an actual job to comment.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    8. Re:unison is probably a better solution by bfields · · Score: 2, Informative
      rsync is a uni-directional file synchronizer and it doesn't have an interactive interface

      Yes, but it's trivial to run it twice, once in each direction, with arguments that result in updates propagating in both directions.

      I used to depend on exactly that technique to keep my home directories in sync. It was a pain in the butt. If you have a file named "foo" in replica A and no such file in replica B, then rsync has no way to tell whether it should delete "foo" from A or copy it to B. For that you need to know some minimal information about what the replicas were like at the time of the last synchronization. Unison takes care of all this for you in a very clever way. It's really worlds better than just using rsync. I highly recommend it.

      --Bruce Fields

    9. Re:unison is probably a better solution by Salamander · · Score: 1

      Oh, please don't get me wrong; I love unison. I found it when I was doing some research for one of my own spare-time projects, and was very impressed. It really is better than rsync in a lot of ways. My point in mentioning rsync was just to say "even rsync can do that" in the same way I might say "even tar/cpio can do that" to make the point that non-versioned backup just isn't all that interesting or difficult. IMO file synchronization, backup/restore and source control are related but distinctly different program categories, with complexity in different areas - e.g. conflict detection and resolution for file sync, or branching and merging for source control. It's often possible to use one tool to do another's job, but mature examples in each category tend to specialize toward a particular purpose. There's a large set of "oops, someone screwed up" problems that simply aren't solved with single-version backup, but that are solved with even the most basic versioned backup. If I want to keep the contents of directories on multiple machines identical I'd use unison, but that's not the problem this thread is about. It's a great solution to a different problem.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    10. Re:unison is probably a better solution by penguin7of9 · · Score: 1

      Yes, but it's trivial to run [rsync] twice, once in each direction, with arguments that result in updates propagating in both directions.

      Yeah, it will propagate updates in both directions alright, it just won't do it correctly.

      Name one. No filesystem-level stuff please, and no snapshots either. I've worked on both kinds of systems before, and they're not what I was talking about. Block level, continuous rollback capability.

      Bell Labs had several versions of such a system, built into the research UNIX kernel (different in details, but from the user's point of view, they could easily look at the file system at any point in the past). It was a neat, gee-whiz kind of thing, but ultimately, not very useful.

      or in anything else, I'll guess. I'll wait for someone with an actual job to comment.

      Don't worry about my job--it looks to me like you should be more worried about your own.

    11. Re:unison is probably a better solution by Salamander · · Score: 1
      Bell Labs had several versions of such a system, built into the research UNIX kernel

      Venti. Filesystem-level, research project, and it was Plan 9 not UNIX. In other words, pretty much totally unlike what I was talking about. Furthermore, others have already mentioned it on this very thread and said it was useful to them, putting the lie to your claim that it's not useful.

      Nice troll, kid.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    12. Re:unison is probably a better solution by penguin7of9 · · Score: 1

      Venti. Filesystem-level, research project, and it was Plan 9 not UNIX. In other words, pretty much totally unlike what I was talking about.

      Venti is described as a "block-level" system. Yes, it uses different technology from the buzzword-laden approach you are taking, although it doesn't sound like your user experience will be any better. And, no, it's not what I was talking about. Venti is only one of several such systems at Bell Labs.

      What I had used is described in "Sean Quinlan. A cached WORM file system. Software---Practice and Experience, 21(12):1289--1299, December 1991.". While the server ran on Plan 9, it was exported to Research UNIX systems, which is where I think most real users used it.

      Furthermore, others have already mentioned it on this very thread and said it was useful to them, putting the lie to your claim that it's not useful.

      Yes, probably in the same sense that the other systems you talk about are "useful" to someone: mostly people with deep pockets looking for a silver bullet to intrinsically hard data management problems. Hey, your company may have a market there as well--silver bullet sales are up again.

      Nice troll, kid.

      I'm always grateful for compliments about my youthful appearance. Now, go back read some research papers on file systems, replication, and versioning--you really seem to need it.

    13. Re:unison is probably a better solution by Salamander · · Score: 1
      it doesn't sound like your user experience will be any better.

      Can I use Venti with any old filesystem? No, because it uses its own API instead of the OS-native block read/write. Can I hook up my new Windows, Linux, or FubarOS machine to Venti storage without having to port their API? No, because it's embedded in a particular host environment. Saying Venti is block-level when it only works with one filesystem and OS is like saying that a libc hack is the same as a real distributed filesystem; it's cool as a prototype or research project, but in day-to-day use the limitations inevitably become obvious. I don't know if you've ever worked on actual shipping code, but I've worked on a dozen products that have actually shipped and made money and I can say that production code always differs greatly from its research/prototype forebears.

      Venti is great work, I already had Quinlan and Dorwards' FAST 2002 paper on my desk before this conversation began, but it's only loosely related to and by no means the same as what I was talking about...and you were still not quite telling the truth when you said nobody found it useful.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    14. Re:unison is probably a better solution by penguin7of9 · · Score: 1

      but [Venti is] only loosely related to and by no means the same as what I was talking about...

      Well, golly, gee, and it isn't at all related to what I was talking about. So why do you keep bringing it up?

      Saying Venti is block-level when it only works with one filesystem and OS is like saying that a libc hack is the same as a real distributed filesystem;

      Between the terminology of some experienced Bell Labs researchers and you, frankly, I give precedence to their choice of terminology. If you think your product distinguishes itself, call it something different.

      and you were still not quite telling the truth when you said nobody found it useful.

      Look up the word "hyperbole" in the dictionary. Better yet, look up the words "get a clue".

    15. Re:unison is probably a better solution by Salamander · · Score: 1
      Between the terminology of some experienced Bell Labs researchers and you, frankly, I give precedence to their choice of terminology.

      That appeal to authority, besides being fallacious, doesn't work too well when the person you're addressing is actually a peer to the authority you cite. Many people in this specialty would agree that the characterization of Venti as a block-level system is questionable.

      If you think your product distinguishes itself, call it something different

      We do. I'm in engineering, though, not marketing, so I didn't think it would be appropriate to introduce those terms into a technical discussion.

      --
      Slashdot - News for Herds. Stuff that Splatters.
  44. Re:should have chose xls by Anonymous Coward · · Score: 0

    How is it you can post mostly thoughtful comments to "the other site" (or more accurately, the site for which this site is "the other site") and yet turn into a drivel spouting troll here?

  45. Problems... by Zurion · · Score: 1

    I remember reading this article over a year ago when it came out. CVS is nice, but it doesn't handle directories well. IIRC, he mentions this.

    I've recently started using rsync kinds of scripts along with cron. It doesn't keep history, but it makes syncing really easy. If you need history, make daily backups. Additionally, rsync is slightly better at lower bandwidth usage vs full blown CVS.

    As for ssh keys (as someone here mentioned) you can have CVS and rsync ignore specific directories you don't want copied.

  46. Re:Don't forget... by Anonymous Coward · · Score: 0

    Pay up, cock-smoker.

  47. Large binary files by agm · · Score: 1

    How would this work for my > 1Gb VMWare virtual disks? I don't think it would very well.

  48. Re:should have chose xls by DavidLeblond · · Score: 1

    Seeing how its CVS not CSV, shouldn't you say "he should have chosen XSL?"

  49. Nice try by pileated · · Score: 1

    but you didn't fool me. I'm not quite that senile to have forgotten that Home Directory on CSV had a pointer stored away in my failing memory system. When I checked I found it pointed to the Linux Journal article where it was published a year ago.

    Better luck next time!!

  50. Re:brilliant by spacecowboy420 · · Score: 1

    Well, instead of showing everyone your ignorance, look it up. Obviously you are not a developer, or interested OSS or you would be ashamed.

    And, as a side note, it IS brilliant.

    --
    ymmv
  51. Yes by justMichael · · Score: 1

    Salvage is your friend. Of course they may have change it's name or removed it, it was salvage back in 4.1.

    1. Re:Yes by snake_dad · · Score: 1

      Hmm... and then there was purge, to reclaim all that used diskspace. IIRC, you ran "purge -all", and suddenly all those embarrassing filenames that you thought were safely deleted run across the screen while your SO is watching over your shoulder... Great way to learn how to quickly switch to another DesqView screen :)

      --
      karma capped .sig seeking available Slashdot poster for long-term relationship.
  52. It's a joke . . . by Anonymous Coward · · Score: 0

    Easy, just include the CVS repo under your home directory and commit it.

    1. Re:It's a joke . . . by Anonymous Coward · · Score: 0

      That sure was clever, saying it was a joke that is. Then no one will do it. The truth is, it will work fine, its what I'm doing and its great. Everyone should give it a try.

  53. Old idea, better one: integrate it into filesystem by Anonymous Coward · · Score: 1

    CVS:sing almost everything is an old idea (as many people are already mentioned). What I'm looking for is filesystem with integrated version control. This also mean that you never lose any data you have once saved. With 200 GB size hard disks (and rising) you probably don't run out of disk space quickly.

  54. Aegis by axxackall · · Score: 2, Informative
    Check this version control comparison for more options.

    Personally I prefer Aegis. It's a bit more complicated to use than CVS (well, aegis is MUCH easier to install than subversion), but takes care about way more situations for you.

    --

    Less is more !
  55. Jesus F. Christ by heironymouscoward · · Score: 0

    I actually understood every single word of that article.

    I'm going to check-in my /home tomorrow. It's brilliant. cvr -q add c:\home c:\home\*.*.

    --
    Ceci n'est pas une signature
  56. Renaming a directory by Henry+Stern · · Score: 4, Insightful

    I shudder to think what happens when he tries to rename his files and directories.

    Definitely the biggest problem with CVS. :(

    1. Re:Renaming a directory by gid · · Score: 1

      Exactly, this was my first thought. He briefly mentions the problems of cvs in a paragraph, but says nothing on how he deals with them. I'm guessing he just puts up with the difficult of it.

  57. The solution is in your comment... by spankalee · · Score: 1

    Why not just commit on both close() and commit()? This way all apps support versioning, and an app that can make better use of the commit() call can be updated to use it.

    Or if the OS was really smart, you could configure it to commit on save() or close() depending on the application.

  58. Storage by EdMack · · Score: 1

    Gnome Storage pretty much sets out to do this in a very user frendly way, although It probably wouldn't cover /ect and other system directories.

    --
    puts ("Python r0cks\n");
    1. Re:Storage by Rheingold · · Score: 1

      Except that Storage isn't an actual filesystem; it's an application that looks like a filesystem to applications that use GNOME-VFS. Non-GNOME apps won't be able to directly use it, AFAICT.

      --
      Wil
      wiki
  59. kinda old article; update by joey · · Score: 5, Informative

    I'm not sure why something that I wrote in 2001 and that appeared in print media in 2002 is news.
    This is the second time I've been slashdotted for something over 1 year old this year. Previously it was the pkg-comp page, which I wrote circa 1998.
    Kinda makes you wonder.

    Anyway..

    I suppose I should mention that these days I keep most of my home directory in subversion. I have not gotten around to writing a successor to this article yet, but it works even better than cvs, and that's probably the most common question people ask me about this article these days.

    --
    see shy jo
    1. Re:kinda old article; update by Anonymous Coward · · Score: 0

      Going for the RMS look, huh?

    2. Re:kinda old article; update by Anonymous Coward · · Score: 0
      Yeah, this happens a lot around here.

      But you already knew that, didn't you? ;)

    3. Re:kinda old article; update by Anonymous Coward · · Score: 0

      Subversion rocks. I use it for production work in fact. I would never do my whole home directory though. Not with the VMware machines in there. :) Commiting 20 GB of data isn't appealing.

    4. Re:kinda old article; update by Anonymous Coward · · Score: 1, Funny

      I'm not sure why something that I wrote in 2001 and that appeared in print media in 2002 is news. This is the second time I've been slashdotted for something over 1 year old this year.

      You're new around here aren't you?

    5. Re:kinda old article; update by Anonymous Coward · · Score: 2, Funny

      You're new around here aren't you?

      Yeah, that's why he's got a user ID of 315! :)

  60. Re:Great idea by spacecowboy420 · · Score: 1

    Yeah, what with all of those enviroment variables and directories you have to setup. Not to mention the long winded howtos you gotta read. /sarcasm

    Seriously,
    Newbie to install in 1 hour, it really isn't that hard. Shit, you could even use wincvs if you aren't a l337 lunix user - I bet my grandma could set it up. Then use turtle cvs as a client (on win, to avoid all of those nasty command lines) or have your ide do it. You just gotta read, we can all read right?

    So, maybe not for an aol user, but certainly most people on this site could set it up - even the gnaa.

    --
    ymmv
  61. vax file version control... by otis+wildflower · · Score: 1

    ... IIRC VAX filesystems supported version control, where you'd manipulate the filename alone to get the latest version of a file, or 'filename,version' to edit a different version. HPUX IIRC supported this as well.

    However, the last time I touched a VAX was 1992 or so, and the last HPUX in 1998, so I could just as well be hallucinating.

    Frankly, I'd rather see a generic database fs, I think that would be much cooler...


    # mount -t dbfs mysql://dbfileserver/dbfs /mnt/dbfs
    # cd /mnt/dbfs
    # cat foo.txt
    foo
    # cat foo.txt/ACLs/system
    0644
    # echo "0664" > foo.txt/ACLs/user/foo
    # cat foo.txt/MIMEtype
    text/plain
    # cat foo.txt/Type
    file
    # dbfsfind ./ -query 'Type="file" and MIMEtype="text/plain", order by CTime'
    ./foo.txt
    ./bar.txt
    ./baz/xyzzy.out

    Let the underlying DB system handle LV stuff and get relational filesystem mgmt... Can the fs driver code handle extended behaviors when referencing files as directories? It's probably performance hell, but an interesting hack I think..

  62. Re:Great idea by Anonymous Coward · · Score: 0

    I tried for ours setting up CVS on Windows, couldn't do.

  63. NFS anyone? by Anonymous Coward · · Score: 0

    I've used NFS for the same purpose in years. The NFS server also backups the shared directory tree to DAT. Same thing, only easier.

    I can't see any reason why having your home directory on CVS, except the cvs rollback function. Other than that, it's just an extremly hard way of doing the above.

  64. Innovate? by cant_get_a_good_nick · · Score: 2, Funny

    Hmm, didn't Microsoft's lawyers patent innovation? Or will this, since it's made with GPLed software that obviously (by Bill's standards) hinders innovation, force a rip in the space time continuum and send us all to an alternate Universe where up is down, down is up, cats and dogs live together, and Microsoft actually invents new technology instead of buying it?

  65. Sounds like iFolder to me. by Krondor · · Score: 2, Informative

    iFolder, for those that don't know, is Novell's distributed folder. Work done on any computer is synchronized with a server and automatically distributed and backed up to all other clients authenticated as the same user and running the iFolder client. A simple concept that proves decidedly valuable.

    I attended a conference, today actually, about Novell's jump into Linux and iFolder was stressed again and again as an excellent cross platform synergy device. I was thinking through the whole conference that couldn't you just do this with CVS, but then I realized iFolder's true advantage.

    iFolder lets you authenticate against a netware tree, access with far less hoops to hop through, and provides easier administration (through iManager or ConsoleOne).

    Just something I thought you should checkout if CVS doesn't quite fill your needs.

    1. Re:Sounds like iFolder to me. by KKBaSS · · Score: 2, Informative

      You can get a free 10mb online demo here

  66. Re:Ugh... by Sh0t · · Score: 1

    i perfer Arch myself.

  67. I wonder what his comments look like by Aqua+OS+X · · Score: 1, Funny

    I wonder what his comments look like.
    ---

    Nov 10, 2003. Deleted old porn from pictures directory. Replaced with new, better, porn.

    Nov 11, 2003. Added 'Animal House' soundtrack to the music directory. Added additional porn to the pictures directory.

    --
    "Things are more moderner than before- bigger, and yet smaller- it's computers-- San Dimas High School football RULES!"
  68. Whats new? - subversion - done 9 months ago by akbkhome · · Score: 1

    So what is new about this, I've been doing it with Subversion and slightly modified davfs for 9 months now, saved me numerous times. It's far simpler than NFS and alot more useful..

    Subversion, Apache2 all installs perfectly via apt-get, I just run apache 2 on another port..

    All my core development is done this way now. I was in germany last week writing to a mounted file system in Hong Kong, and although it was a bit slower, Perfectly usable.

    --
    Taking PHP to the next level: phpmole, php codedoc, php-gtk pear installer, DataObjects for php, ldap schema viewer and
  69. CVS not fast enough by NoSuchGuy · · Score: 0

    We had an PHP project containing about 1200 files, pictures, PDFs... it took about 12 hours to check in all files at once!

    One big home.tar ist better and faster than to add and modify modules (sigs home/me/slashdot-sigs/) for your own home directory.

    NoSuchGuy

    --
    Grundgesetz * 23. Mai 1949 - 30. November 2007 - http://www.vorratsdatenspeicherung.de/
  70. err by arekusu · · Score: 1

    Hm, what will happen to all my non-ASCII filenames?

  71. Bah humbug by Anonymous Coward · · Score: 0

    Doesn't everyone use RCS to keep track of their /etc directory and so on so forth?

    I mean really... what's new?

  72. Sort of the same thing by bigjnsa500 · · Score: 1

    I do something sort of like this, but I use rsync instead. I just run a quick script before I log out of my laptop, which rsyncs $HOME to a master server.

    --
    This is a test. This is a test of the emergency sig system. This has been only a test.
  73. Good idea - it's called "DOCUMENT MANAGEMENT" by dilute · · Score: 1

    . . . like, for example, Documentum, PC Docs, iManage, etc., etc.

    Those are the commercial implementations of this concept.

  74. The comments say he uses subversion now by Polo · · Score: 5, Informative
    Did you see his followup reply at the bottom??
    Re: CVS homedir (Score: 0)
    by Anonymous on Tuesday, November 11, 2003

    I suppose I should mention that these days I keep most of my home directory in subversion. I have not gotten around to writing a successor to this article yet, but it works even better than cvs, and that's probably the most common question people ask me about this article these days.

    -- Joey Hess
  75. Proof! by Anonymous Coward · · Score: 0

    This is proof at last that Open Source people are the greatest in the world. Who else would think to use a development tool in such an innovative and sexy manner? That's a rhetorical question of course but for those who missed the allusion, nobody else would. Open Source is the best, most alluring creation in the history of the universe and I genuflect at the feet of the wonderous beings who sired it.

    I am waiting in moist anticipation for the day when Microsoft Word or Excel is used in a similar, orgasmically original manner. Alas, I doubt the day will come, for Microsoft has repeatedly rejected the Open Source model. Who can now deny that Microsoft are nought but fools who will perish come the day of reckoning.

    1. Re:Proof! by Anonymous Coward · · Score: 0

      Sing it, brother.

    2. Re:Proof! by ScrewMaster · · Score: 1

      I was fine with this until you got to the "moist anticipation" part.

      --
      The higher the technology, the sharper that two-edged sword.
  76. Hmm.. this might take a while.. by destiney · · Score: 1


    > du -ch ~

    (some 45 seconds later)

    20G total

  77. Been doing that a *long* time by Anonymous Coward · · Score: 5, Interesting

    I've been keeping my home directory in CVS since 1996. Prior to that, I kept it in RCS, since around 1985, and briefly in SCCS.

    I haven't yet decided to go to Subversion, in part because I have a patched version of CVS that allows me to check into multiple CVS repositories - i.e. I can check in when on my laptop on an airplane, disconnected from the net, and can later check in to my main repository when I get connected. (Yeah, yeah, BitKeeper is a way to do that.)

    As Joey's article discusses, there are minor issues with CVS'ing your home directory: use of modules, etc. I divide it into stuff that is owned by the company that I am currently working for, and stuff that I own.

    When I get an account on a new machine, one of the first things that I do is create a new branch (or, a new version on some existing branch) to hold the dot files and other files
    that were pre-installed in my home directory. Having saved them, I then blithely overwrite them with my standard home directory, and maybe do a quick check to see if there are any special features worth propagating to my standard home directory.

    Oh, yeah: a bit of footwork to checkout
    onto your home directory:

    cd ~
    mv * .* /tmp/glew/old-home-directory // actually, usually saved already
    cvs -d MYSERVER co glew-home
    mv glew-home/{*,.*} .
    rmdir glew-home

    I often find myself pasting together
    modules from different repositories.
    Sometimes I *want* a "cvs update"
    in the root, e.g. in ~, to traverse
    repository boundaries - no problem.
    But sometimes I don't - e.g. I frequently
    work in ~/hack, and check out stuff into there.

    To do this, I have fallen into the habit
    of creating a CVSBARRIER directory that is
    not checked in, that prevents cvs update
    from traversing.

    Also, I find it useful to have a place
    to put overall comments for a repository.
    Typically, this is ~/README or ~/CVS-status.
    The overall comments - such as "the tag
    named FOO is my home directory at the time
    I moved to university BAR and merged in
    changes from my laptop BAZZ that had diverged"
    get suck in the CVS log, via
    cvs ci -f CVS-status.

    Oner thing: when yiou have as much history as this, you notice when programs change their interface. E.g. nmh doesn't run my ~/.mhrc from 1994 :-(

    --- Andy "Krazy" Glew
    (I'm too lazy to create a slashdot account)

  78. Re:Great idea by spacecowboy420 · · Score: 1

    Remember I said you had to be able to read.

    I think hooked on phonics would be a challenge for you.

    --
    ymmv
  79. Other features of a relational DB/versioning FS. by Anonymous Coward · · Score: 0

    Other features of a versioning file system with a relational database to track metadata (Imagine the bastard lovechild of BeOS's BFS and Clearcase's VOB database.)

    Atomic changes, commits and rollbacks would be possible.

    Want to get around DLL Hell? Applications could record version of foobar.dll used at install time in an application config file and you could upgrade your libraries at will and things would still work.

    Want to build your own experimental libs without fubaring the system libs? That works too.

    How about the same files system looking different for different logins based on configuration rules? User noob would see the ls and other non-destructive commands, and user root would see all the administrative commands. Granted we can get this now with UID/GID magic on directories or ACL's (ugh!), but a relational DB/versioning FS would be much more powerful.

    How about doing a database queries and joins about your files on a relational database that updates every time you create a new file. Kinda like locate, but built into the filesystem itself.

    And no CVS would not be the best method. It's not very powerful from a version control/CM point of view. A free/open Clearcase workalike would be more suitable.

  80. another article about this same subject by Anonymous Coward · · Score: 0

    http://www.lugatgt.org/articles/cvs/

  81. Quick and dirty automated installs by ThatDamnMurphyGuy · · Score: 1

    Couldn't one also use CVS to apply customization to fresh installs via `cvs update`? Probably a little easier than patch files. Maybe not.

  82. Sounds like a roaming profile to me by nurb432 · · Score: 1

    Nothing new there.. though i suppose its more 'generic'...

    and a more of a pain in the butt to manage...

    --
    ---- Booth was a patriot ----
    1. Re:Sounds like a roaming profile to me by Anonymous Coward · · Score: 0

      YOu sound like a "roaming moron" to me. Why don't you shoot yourself in the head, and do us a favor, jackass?

  83. Re: an innovative solution by bro1 · · Score: 0

    I believe this has already been patented and discussed here on slashdot before - Software Installation/Update via Internet Patented

  84. Re:I just heard some happy news on talk radio... by Trolling4Dollars · · Score: 1

    Here here! I second that opinion Fecal Troll Matter. Good to hear that we won't be pestered by those gits again.

  85. Yeah, From the article... by twoslice · · Score: 2, Funny
    I've used the same wallpaper image for the past five years


    That must be some great Pr0n image he looks at everyday!

    --

    From excellent karma to terible karma with a single +5 funny post...
  86. Solution : Save Undo History by adam+arndt · · Score: 1

    You would only need to commit when you save a file and you would only need to do this rarely if, when you saved it, the application exported its "undo" history somehow.

    So, for example, I have a large blob of code I edit in VIM. When I save it, I effectively get a "major version" in VIM but I also get my edits saved. So I can open it, then "undo" the lot, right back to when the file was empty or whatever.

    I don't know how this would be done for VIM or other applications, but it must be theoretically possible. Imagine this for word processors, vector graphic editors, heck, even rastar image editors. Why not?

    CVS (or whatever) would also support collaboration.

    It sucks when my Undo history is lost, and no, I don't want to create 10,000 file versions to deal with in CVS either, for all edits. But CVS is a great start.

    --By the time I get rich the world will have finished metamorphosing into a Socialist state and Ferraris will be, like, way taboo.

  87. News Flash, Film at 11 by bokmann · · Score: 1

    I thought this when I read the magazine over a year ago...

    So this guy is using a version control system for exactly the purpose it is intended for... This is newsworthy? In that case, I probably do enough newsworthy stuff to fill a couple of magazines every day.

  88. Re:should have chose xls by CausticWindow · · Score: 0, Offtopic

    Hehe.. in a nerdy/technological context, you see him for what he is, a drivel spouting troll.

    In the k5/political context, you see his comments as mostly thoughtful. I think this tells more about you than him.

    --
    How small a thought it takes to fill a whole life
  89. employ the inode monitor daemon! by MarcQuadra · · Score: 1

    I think the inode monitor daemon, which exists to see where there's disk activity, could interface with a cronjob, and it would be 'good enough'.

    Most users don't need such granularity (every SAVE) with their files, the most requested time to roll them back to is 'yesterday', from my experience.

    If the inode monitor kept a list of all files changed, and a hourly/daily/weekly cronjob took the list, filtered out what you don't want 'protected' and processed the diffs, naming and storing them, we'd have a working system.

    There's no need to push a new API, it's a good idea, but because it'll never be universal it's doomed to only work sometimes. Using the inode monitor would be just as good as the competition.

    Wow, I'm making BIG sentences tonight. :-)

    My question is:
    where do you STORE the diffs and the info for rolling files back? Would it make sense to store them in a flat-file with a custom DB format, or would storing them in the filesystem alongside the originals (but hidden, of course)?

    --
    "Sometimes, I think Trent just needs a cup of hot chocolate and a blankie." -Tori Amos on Nine Inch Nails
  90. Rsync anyone? by pico303 · · Score: 3, Insightful

    Isn't this what rsync is for? CVS seems to be the wrong tool for this job.

    1. Re:Rsync anyone? by GiMP · · Score: 1

      Rsync is, in many ways, a better tool.. but also a worse tool, for some reasons as well. The problem with rsync is that it will not use RCS like CVS does to manage file revisions.

  91. Subversion by swankjesse · · Score: 1

    Installing the subversion server is a bitch. Especially if you're not already running Apache 2.x. As for the client, it's not being maintained for OS X any more on Fink. So if you have OS X and you want Subversion, it's a huge pain in the ass. But the program itself is cleaner and nicer than CVS. I just wish it came with my Mac.

    1. Re:Subversion by ffidrelli · · Score: 1

      - apt-get install subversion subversion-tools
      - Control access through svnserve+ssh

      Can even do hot backups, and has a compact database back-end (remember about sector granularity on hard disks? database lives in 10 files). Perfect for my needs.

    2. re: subversion by Anonymous Coward · · Score: 0

      Can't you just install TortoiseSVN and start using it immediately ? Just make a local sandbox on a network drive.

  92. Tedious but not innovative by exa · · Score: 1

    You don't need to keep every thing in CVS. I keep just my code and articles on CVS dammit!

    One thing you might wanna keep in CVS would be your .kde and /etc directory but then you wouldn't wanna go around and fix all those conflicts!

    I was keeping the /etc directory of the master node of the beowulf system I was administering and that worked well, too.

    My advice is use CVS only where it's necessary :)

    Get a life Joey!

    Please let's move on.

    --
    --exa--
  93. Low Bandwidth == Use Subversion by quinkin · · Score: 1
    Subversion is the ONLY Open Source solution I know of that will efficiently utilise the bandwidth between the client and repository. It only sends a file if it has to and uses hash comparisons to determine the status.

    I can't stand CVS... and I can deal with updating a repository database every year or two. Haven't used perforce.

    Q.

    --
    Insert Signature Here
  94. Better yet... by Anonymous Coward · · Score: 0

    Knoppix CD (A linux that runs off a CD)
    + CVS repository on a USB Flash RAM dongle
    + knoppix.sh startup script to checkout homedir from CVS repository at bootup

    = The greatest environment that you could ever hope for!

  95. Old news by whereiswaldo · · Score: 5, Informative


    This was featured in a Linux Journal article from September 2002:

    http://linuxjournal.com/article.php?sid=5976

    Same guy, too.

    1. Re:Old news by whereiswaldo · · Score: 1


      Oh man! Hilarious, I didn't even read to the end of the fscking front page article. It just didn't occur to me that Slashdot posted old news on purpose.

  96. cvs commit ; sudo rm -rf / by bwdunn · · Score: 1

    Ummm... the last thing he did at that job was:
    cvs commit ; sudo rm -rf /

    I think he would have been smarter to do:
    cvs commit && sudo rm -rf /

    Am I being picky?

    1. Re:cvs commit ; sudo rm -rf / by Wolfrider · · Score: 1

      --He could have done:
      ' cvs commit && dd if=/dev/urandom of=/dev/hda1 bs=1M ' if he was REALLY paranoid.

      --
      .
      == WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
  97. SQL FIlesystem by nurb432 · · Score: 1

    Create a SQL server based file system, using external connectors instead of a local 'server'. Add transaction logging and you have instant roll-backable... Stick it in a real data center you get decent backups...

    Export to where ever you feel safe, and it becomes accessible from wherever you need it..... run it over SSH and its safer.... it also would be platform independent.. ( unless you use something like MSSQL )

    Sure its not the most efficient use of space, but space is getting cheap... Processing power is cheap too.....

    --
    ---- Booth was a patriot ----
  98. I do this too... by bretth · · Score: 1

    but not with my whole home directory. I have the subdirectories docs/, src/, bin/ checked in, and a directory called "cfg" that contains my dotfiles - bashrc, profile, emacs startup files and various lisp files and mozilla config files. When I first set up a Unix/Linux/MacOSX system I create a symlink from the dotfiles in my cfg directory to my home directory. Under Windows, I have a .emacs file that loads the emacs file in the cfg directory.

    I also have a bunch of shell scripts that tell me what files haven't been checked into CVS. Forgetting to check files into CVS is quite an issue, as well as not doing a "cvs commit" at the end of the day.

  99. Re:I wonder..... [about arch] by Anonymous Coward · · Score: 0

    Though in general arch is very good at handling these sorts of problems, there are problems with using arch to back up home directories. The most significant problem is that arch is a bit picky when it comes to filenames. As an example, arch does not allow spaces in filenames. There has been talk off and on about removing this restriction from arch. Don't hold your breath for this restriction to be lifted though -- the maker of arch, Tom Lord, seems to be against this idea.

  100. What the heck is CVS? by lcsjk · · Score: 1

    For us non-programmers (and being somewhat ignorant now and then), I wondered what my local pharmacy would think if I carried my files there. A search on Google, gave me a few choices for CVS. However, Concurrent Versions System is foreign to me. Is this a ?nix only program or also for MSwindows or what? A little explanation of mnemonics is always appreciated.

    1. Re:What the heck is CVS? by Anonymous Coward · · Score: 0

      He meant the pharmacy...

      Sheesh. Everyone knows the guy handing out painkillers is a backup enthusiest.

    2. Re:What the heck is CVS? by Anonymous Coward · · Score: 0

      I hate that acronym. It's the one that never gets explained because "everybody knows it".

      Goes to show that Linux is still by geeks for geeks, and not ready for normal people with a real life.

      Can't the system have a name like "BitKeeper" has? "ConVerSys" or something would give some hint about what it is, compared to just "CVS".

      Okay, I concede that maybe the CVS is something normal people don't actually need to know about very urgently... Too tired to dress this post nicer, too bored to delete it, let's just post it AC. Mod accordingly, I'm sure.

    3. Re:What the heck is CVS? by 4of12 · · Score: 1

      [man page]

      cvs - Concurrent Version System

      CVS is a version control system, which allows you to keep old versions of files (usually source code), keep a log of who, when, and why changes occurred, etc., like RCS or SCCS. Unlike the simpler systems, CVS does not just operate on one file at a time or one directory at a time, but operates on hierarchical collections of directories consisting of version controlled files. CVS helps to manage releases and to control the concurrent editing of source files among multiple authors. CVS allows triggers to enable/log/control various operations and works well over a wide area network.

      cvs keeps a single copy of the master sources. This copy is called the source ``repository''; it contains all the information to permit extracting previous software releases at any time based on either a symbolic revision tag, or a date in the past.



      Works great for text files (such as programming language source code, and even for documents in formats like LaTeX, XML. A lifesaver if you have to develop with other people.

      --
      "Provided by the management for your protection."
    4. Re:What the heck is CVS? by lightsaber1 · · Score: 1
      Goes to show that Linux is still by geeks for geeks

      I'd like to point out that a) CVS is not a Linux thing...it is commonly used in windows as well, and b) it is a programmer's tool (read geek tool), so your average joe doesn't really need to know what it is.

      However, I agree with you in principle. Linux users (including myself) are very guilty of not explaining things in terms others can understand. Why is this? I have two theories on this:

      1. we are too lazy to bother, instead saying things like RTFM. The unfortunate thing is that the manual is BY geeks FOR not necessarily so geeky geeks, but is virtually unusable for the lay-person, or
      2. (and this isn't me I hope) we don't want the average user to start using Linux for fear that it will somehow contaminate this great thing we have and we might actually have to start supporting these people...something that is insulting to these ppl who will clearly never have real jobs (not with that attitude anyways). I have seen a lot of people like this, and, as I say, I hope I'm not one of them.

      That said, Concurrent Version System (CVS) is basically a tool that keeps one copy of files that can easily be downloaded, modified, and uploaded to a large pool of people over a network and, ideally, if more than one person modifies a file, it will merge those changes correctly (this doesn't always work properly, but is much easier than doing it manually). If someone introduces an error, it also keeps information required to back out any changes and then you'll have your old, working copy again.

      While this doesn't seem incredibly new, it is an interesting use of CVS to keep backups. Nobody ever said CVS HAS to be for source code.

    5. Re:What the heck is CVS? by bhtooefr · · Score: 1

      They need to at least hear of it, or when they see "go to the CVS" in a HOWTO, they'll actually go to the local CVS, and ask the pharmacist why they can't find the Mozilla source there (actually, they HAVE sold software before - I have a Monopoly CD I bought there for $5).

    6. Re:What the heck is CVS? by Anonymous Coward · · Score: 0

      Thanks!! That helps a lot! Good explanations are always appreciated by the programming impaired.

  101. Linux Journal... by DraKKon · · Score: 1

    Linux Journal Covered this over a year ago... Issue 101: CVS homedir...

    --
    "It's not like your minds are as open as the source you love..." - Me to the majority of Slashdot.
  102. Check your assumptions by MarkusQ · · Score: 4, Funny

    Smitty825:
    I'll put my home directory on Sourceforge!

    Everyone can now help me maintain it!

    --

    Doh!

    AvantLegion:
    I patched your political science essay.

    I fixed all the anti-Bush bugs.

    --

    Now hold on. Just because his sig is "Doh!" doesn't automatically mean he's anti-Bush.

    It might just mean that he's pro-Homer Simpson.

    -- MarkusQ

  103. uhhhhh by ShadowRage · · Score: 1

    why not just do an nfs mount? or have it on several computers at home?
    if it's a remote setup, then nevermind.

  104. Gateway GoBack (Adaptec) by wskellenger · · Score: 1
    Man. I cringe to even post this.

    My box runs WinME, with a software by Adaptec called GoBack. This "technology" silently keeps track of every modification to my disk, will let me revert the entire drive (or individual files) to some state in the past.

    At every boot I'm allowed to press a key in order to enter the interface and revert my drive. I have used this about twice to fix some stupid "Jeez, I wonder if these two versions of the same program can co-exist?" things I've f'ed up.

    Slick. The documentation for this program claims that it only uses system idle time, but I'm wondering if it isn't causing my disk an undue pounding. During idle times it can be heard writing and it annoys me.

    At any rate, it works great, but doesn't do what the author of the article suggests, and that is to allow him access to his home directory from other machines. (i.e., when he mentions that a bash shell on another box is completely unmodified it pisses him off)

  105. the latest news.... by holzp · · Score: 1

    Issue 101: CVS homedir
    Posted on Sunday, September 01, 2002 by Joey Hess

  106. Hate to say it, but... by endquotedotcom · · Score: 1

    ...it's not quite CVS, but Windows XP already has the notion of "restore points" to bring your system back to however it was when the restore point was made. Some software installers automatically create the points before installing themselves. I haven't ever tried to recover a system with one, but it's a neat idea at least.

  107. Good RCS/CVS HOWTO please by macdaddy · · Score: 1

    Does anyone have any good RCS/CVS HOWTOs, guides, cookbooks, etc? I've used RCS a tiny amount. I would love to learn how to use them more. This has always been on my to do list. Doing what this guy did would be quite interesting. Suggestions? Tips? Thoughts?

    1. Re:Good RCS/CVS HOWTO please by igbrown · · Score: 1
  108. archive by wasabii · · Score: 1

    I do this using a cron job that runs every hour and a little bit of rsync logic. Our main share is /export/public, every hour /export/public is recreated in /export/public/archive/date-time/. It's not totally recreated though. Files that didn't change since the last run are made as hard links to their previous versions. That way you can go back to any time or date, but only one copy of a file is stored.

    1. Re:archive by Anonymous Coward · · Score: 0

      could you post that script?

  109. Homeland CVS by Anonymous Coward · · Score: 0

    Dear Citizen, Thank you for using Homeland Security CVS! Your portable and _secure_ online storage.

    It seems you have changed your home directory. Please provide a description of the changes below.

  110. A potentially better solution...and another... by Lodragandraoidh · · Score: 1

    Here is a better solution that will work with multiple different types of machines:

    1. Set up CFengine on all of your boxes (microsloth windows too).
    2. Configure a master system with all of your working files.
    3. Configure your slave systems to query the master and copy over new/changed files.

    Once you have this set up properly, it takes care of itself. As an added benefit it makes managing multiple machines a snap.

    You can even have it kick off an application/script (like CVS) when something changes - to capture it in your archive if you like (so you can roll back as needed).

    I love revision control, but managing it by hand is a pain in the behind.

    Ultimately, I want to not have to worry about locations of files at all - depending instead on meta-data to provide searchable, annotatable links into the actual files with overlays of my own notes, similar to the 'Annotea' project module in the W3C AMAYA web browser (this is pretty cool - you can 'annotate' documents without altering their content - even documents on other servers; the system keeps 'RDF' xpointers and xlinks on your home system, and amaya renders your notation links in the web page as you view it).

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  111. Novell has this too! by 4_Scythe · · Score: 1

    And NOVELL has had this feature in their Netware line for about six years now. Netware 4.11 has it, and they're up to 6.5 now!

  112. Check out the Elephant filesystem by Anonymous Coward · · Score: 0

    http://www.hpl.hp.com/personal/Alistair_Veitch/pap ers/elephant-sosp/efs.pdf

    The idea is that an immutable delete is a carry-over from oldentimes when disk space was a scarce resource. If versioning and history were integrated with the filesystem it would fundamentally change the way we use it...

  113. Good idea? Yes... Innovative? by Anonymous Coward · · Score: 0

    Hardly...

    Been doing this for a long time, and for more than just home directories. System configs, web sites, security info etc. Makes rebuilding a server trivial, and trivializes backups of the most important stuff.

  114. He's Using SVN Now by krmt · · Score: 1

    Joey says in a comment below the article that these days he keeps most of his home directory in Subversion rather than CVS, and that he hasn't gotten around to writing an updated version of the article.

    --

    "I may not have morals, but I have standards."

  115. shoulda patented this! by NuShrike · · Score: 1

    I use CVS to distribute everything from webserver files, to installation releases, webserver configs, home directories, so on years ago.

    Damn, should've patented it when I had the chance!

  116. Re:I just heard some happy news on talk radio... by lord_nightrose · · Score: 0

    That's "GNAA", and that's "wishful thinking." Yes, it would be nice to be rid of the trolls, but so long as people exist, there will be trolls.

    --
    This is not part of my post. It's my signature. I bet you're disappointed.
  117. seems like an interesting idea by shamir_k · · Score: 1

    Hey I submitted the article because a guy at work pointed it out to me. I am a bit new to CM, and this seemed like the sort of really crazy idea that works.
    Now I am going to take a look at subversion. But I don't think I could achieve the iron control of file structure thats needed for this approach to work.

  118. hrmm.. by $0+31337 · · Score: 1

    cp -R /home/stupid /mnt/floppy

  119. Uuuh and they were late to do it by Anonymous Coward · · Score: 0

    cos it was in netware years ago

  120. Re:should have chose xls by The+Cydonian · · Score: 1

    It's called the village idiot phenomenon. When you read circletimessquare on /., it's like listening to your, otherwise friendly, village idiot in Big City. Somehow, the scenery doesn't match.

  121. Great feature... by Anonymous Coward · · Score: 0


    So does Windows XP Pro. It's called "System Restore". I don't think that it works for every single file, but it does a lot of that stuff, keeping old config files around and so on.


    It even backs up viruses! :D Thanks Microsoft!

  122. Replying to my own comment by macdaddy · · Score: 1

    What I'd like to see if a sysadm's guide to using RCS/CVS in their daily administrative tasks. Make sense?

  123. makefile by gregeth · · Score: 1

    I actually already do a similar thing with a makefile. All I had to do was use a combination of scp, rsync, and ssh commands and with one command I can synchronize recursively data on multiple hosts, which are just listed in a file. Although, non-versioning CVS always works good, too.

  124. Misinformation !? by theefer · · Score: 1

    have you every tried to install and set up subversion?
    Yes, it's just easy (and there are packages for every major distro out there).

    plus, after years and years of development, it's still point-oh-something and specifically states they can only guarentee that your repository can be read with x number of versions after the version that created it.
    WTF ?
    SVN is going beta any time soon (and 1.0 soon after that). There is no such restriction as far as I know, where did you get that ??
    I have my home directory under SVN, and a lot of repositories, including one with over 300 Mo of data (binary, text, sources, etc). Never lost one single bit.

    Don't misinform people on this great project, please, it deserves attention !

    --
    theefer
  125. What about arch? by Anonymous Coward · · Score: 0

    Can I arch easily to do the same? I should, shouldnt i?

  126. Works for for document management as well by steveoc · · Score: 1

    On an intranet that I run for a customer, I have weaned them off MS Word, and now everything is stored in OOffice XML format.

    When they commit a document, the webserver at the backend unzips the OOffice file, and then commits it to CVS.

    Being raw text, you can use cvsweb to be able to display versions of documents over the web, and also to do graphically enhanced diffs of documents.

    Dont know if Microsoft already has something like this ? CVS works a treat for this, and the customer is pretty happy.

  127. Can I put it on sourceforge then? by while(1)fork() · · Score: 1

    Well, THAT would be a distributed backup...

  128. rcsvi for easy sysadmining by negyvenot · · Score: 3, Interesting

    rcsvi is a simple wrapper for vi that puts edited files under revision control. It does not support any vi flags. It only takes one file argument and an optional revision number for reverting to previous versions. A few examples:

    # alias vi=rcsvi
    # vi /etc/passwd
    [ remove Agent Smith's account ]
    :wq
    /etc/passwd: 12 lines, 94 characters.
    enter log message, terminated with single '.' or end of file:
    >> Agent Smith's account removed.
    .
    Voila. You now have your passwd file under revision control. More examples:
    # vi -r1.2 /etc/passwd
    # rlog /etc/passwd
    # rcsdiff -r1.2 -r1.3 /etc/passwd
    To make a complete backup of your system configuration:
    # tar fc /tmp/RCS.tar $(find / -type d -name RCS)
    Now you may ask "ok i want to edit multiple files and/or do some other trickery". Don't. It's a simple tool, that i'm using for years now with great satisfaction.

    Check it out here

  129. Try Backup4l by Anonymous Coward · · Score: 1, Informative

    I've been using Backup4l and am quite happy with it.

    It's a multilevel incremental backup tool that every night mounts an extra HD that I use for backups and puts only the changed files to tar.gz files. It also deletes old file on the fly and I currently store about 6 months of history.

    Restoring files is very easy ('backup4l --restore */pr0n/*.jpg', optionally with a specific date), no hassles with manual commits, binary files and removed, moved, renamed files. Sure, it's not version control per se, but works fine for me.

  130. Hmmmmm by rofthorax · · Score: 1

    Wouldn't it be easier and more efficient to use a log-filesystem? And VNC?

    --
    Just say no to license servers!!
  131. Checkin on clobber by John+Allsup · · Score: 1

    A quick hack would probably be possible so that, in the event of a file being clobbered, the current version is automatically checked in (together with some sort of 'was clobbered' note).

    You'd need a 'ignore clobber' lock to allow this to be bypassed.

    Just a thought. (Think of this as analogous to copy on write if it's any help.)

    John.

    --
    John_Chalisque
  132. funniest line in the article by drrnwbb · · Score: 1

    "Keeping your home directory in CVS is not all fun though"

    ah well. you cant have everything i guess.

  133. Yeah yeah yeah by macmurph · · Score: 0, Troll

    I was doing this with Perforce and OS 9 years ago...and I know others that did it long before me.

  134. CVS for /etc by SCY.tSCc. · · Score: 2, Interesting

    CVS serves great for our /etc directory. There are 9 administrators that may fiddle around with the configuration and CVS is used to keep track of the who-changed-what-and-why thing.

    All it takes is a bit of discipline to check in your changes in case you're not used to it. A daily cvs -nq up -dPR helps to find the files you forgot to check in.

  135. Did this a while ago... by chrisbtoo · · Score: 1

    I wanted something that could give me the sharing of home space that NFS gives, but that would still be there when I unplugged my laptop from the LAN.

    Since, in general, I'm not working on my home space independently on different machines anyway, occasional "cvs up"s do the job well enough.

    --
    Registering accounts later than some other chrisb since 1997
  136. NSS - Re:Why just home? by Qube · · Score: 1
    The only thing that sucks is that if you delete the actually directory structure (not just files within) then they get dumped into one huge list.

    Only on traditional volumes - with NSS volumes (ie. most netware servers installed in the last 5 years or so) Salvage retrieves folders too. Was the big reason for us to move our old volumes over on the fileservers :)

  137. CVS could do better with directories by hbr · · Score: 1

    I don't see a huge problem with the way you can "rename" a file in CVS:

    mv oldname newname
    cvs del oldname
    cvs add newname
    cvs ci -m "Renamed file oldname to newname"

    OK, so this requires a little bit of discipline to make the comment such that when you come back later to view logs, you can make the connection between the old and new filenames, but I'd say it was acceptable.

    I also don't have much of a problem with what happens if you later decide to add the file oldname again - it simply resurrects the old file and history.

    The trouble I have is with directories - you can't really move these (or even delete them gracefully - cvs co -P is a bit naff).

    How about putting deleted directories in the Attic in the repository? That way they wouldn't hang around like an unwelcome smell. And when you move a directory you could employ much the same tactic as for files - put the entirety of the oldname tree in the Attic of the parent directory, and add a complete copy of the tree to the repository under the new name.

    OK, so this could be extremely inefficient as far as storage goes, and it might require a bit more effort to access the "complete" history of a file, but it would be enough to keep me happy.

    The other trouble I have with CVS is when the files get to about 100MB, it gets impossible to retreive old versions for some reason.

    Hmmmm.

    Otherwise, CVS is indeed the best thing since sliced bread.

  138. How about afs? by generic · · Score: 1

    I am working with setting up AFS here at work and so far it seems pretty cool. It is fully distributable, the only issue I see is lack of returning error codes and documentation. But so far it seems pretty stable. Even works over Cisco VPN in linux. Although I am still looking on how to tweak the cache timeouts for afsd.

    --
    Microsoft aggravates my tourettes syndrome.
  139. Elephant FS proposed (or did?) something like that by Anonymous Coward · · Score: 0

    see
    http://www.hpl.hp.com/personal/Alistair_Veitc h/pap ers/elephant-hotos/elephant.pdf
    http://www.cs.ubc .ca/spider/feeley/research

  140. Need a life? by PSaltyDS · · Score: 1

    [Quote] Every morning (er, afternoon) when I came into work, I'd cvs up while I read the morning mail. In the evening, I'd cvs commit and then update my laptop for the trip home. When I got home, I'd sync up again, dive right back into whatever I'd been doing at work and keep on rolling until late at night--when I committed, went to bed and began the cycle all over again. [/Quote]

    Somebody desperately needs a girlfriend...

    Any technology distinguishable from magic is not suficiently advanced.

    --
    Any technology distinguishable from magic is insufficiently advanced. - Geek's corollary to Clarke's law
  141. But not _everything_... by Ed+Avis · · Score: 1

    I have my cvsroot/ directory in my home directory. So I obviously can't put _that_ in CVS...

    --
    -- Ed Avis ed@membled.com
  142. Mentioned in Sysadmin too by mrhandstand · · Score: 1

    This was mentioned in Sysadmin in the last year or year and a half. I don't remember when exactly. It might be worth looking if you are that interested in recreating this concept.

    Doug

    --
    Always value the individual over the system. --Bruce Lee "I don't need a Sig - I have a custom 191" - me
  143. nice tool ... by GNUALMAFUERTE · · Score: 0, Troll

    You can use it to roll back the wole system 5 to 9 times a day when some asshole discover yet another vulnerability on IIS and decides to 'test it on your server'.

    Or, when you install the new version of that stupid control panel, and it fucks your registry up ...

    Or when one some luser create a file called ' ? * * lpt1 prn' in an incoming directory, shure, just roll the changes back ...

    Good way to administrate a system, until this tool from the devil fucks up your registry, eats 90 MB of RAM, 20 % of CPU, and make you reinstall windoze after causing you 3 hours of downtime, Shure!, it's the best!! Keep creating such amazing software bill!.

    --
    WTF am I doing replying to an AC at 5 A.M on a Friday night?
  144. You need OpenBSD by Santana · · Score: 1

    OpenBSD has a set of scripts that mails you, among other things, information about changes made to configuration files

    --
    The best way to predict the future is to invent it
    1. Re:You need OpenBSD by pHDNgell · · Score: 1

      Sure, but I run this stuff on NetBSD, Solaris, FreeBSD, Mac OS X, IRIX, and SunOS 4.1.4 at home. It works for anything in any directories I want, and it automatically revision controls the files so they can be rolled back if you realize you made a mistake after you wake up the next morning.

      --
      -- The world is watching America, and America is watching TV.
  145. Arch (Was: Re:CVS, eh?) by Keltia · · Score: 1

    I wonder whether you really looked into Arch because saying it is a hack onto CVS can not be further from the truth. If Arch is close to something then it is BK as Arch is also a distributed SCM whereas CVS/SVN/Perforce are just centralised SCM.

    I agree Perforce is nice (I'm been using it for 4 years now) but I'm converting everything to use Arch as the distributed nature of Arch makes it much easier to manage repositories in several places while having all of them synchronised.

    Do yourself a favor and look again at Arch .

  146. CVS for your home directory by rossy · · Score: 1
    This is a terrific idea. At my work, we lost our file servers, and the Unix home directories of about 200-500 people were missing for about 10 days while our IT department scrambled to reload from tape backup.

    Having the home directory synced with my home PC, would be in violation of some corporate policy, but would have allowed me to continue without impact.

    Unfortunatly, I need about 200Gb of storage at home for some of the large IC test patterns that I work on at work. So CVSing my entire home wouldn't be practical... but a all the . files would.

    There have been some interesting developments in "home" directories and file management. There was some Discover/NOVA show about a file system that is basicly a stream of data in time... in that data should be orginized not by a tree structure (or file cabinet like setup), but as a serial stream orginized by access date or arrival date.

    Also I had heard that some next gen disk filesystems would be database driven, so the CVS setup might make more sense. Certainly if the database/compression algorithms are in hardware, it would be fast, but you would need some firmware to allow for changes. --- OK babbling off.

    --
    Ross Youngblood
  147. troll by lerouxb · · Score: 0, Troll

    and one or two cool ideas made popular by debian in the 90s gives you the right to be a close-minded, elitist, gentoo basher?

    I use gentoo, but I realise that other distros also do/did cool things (especially debian - in many cases I would rather use it) and I don't mentally grep for their names and post hostile replies whenever I encounter them.

  148. He does use subversion by psgalbraith · · Score: 1

    > I wonder why CVS, and not something more
    > advanced, like Arch or Subversion?

    Joey uses subversion now. Scroll down to a post from him. He wrote the article in 2001, it was published in LJ last year and is /. news today. He has since switched to using subversion.

  149. This is anything but new by BlueTrin · · Score: 1

    I already used this system for more than 1 year

    --
    Don't you know it is now both immoral and criminal to think beyond the next quarterly report?
  150. Careful... by Trejkaz · · Score: 1

    Or your views might be seen as subversion.

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!