9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Bakul Shah <bakul@bitblocks.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] hgfs?
Date: Fri, 27 May 2011 10:18:53 -0700	[thread overview]
Message-ID: <20110527171853.2EFA3B827@mail.bitblocks.com> (raw)
In-Reply-To: Your message of "Fri, 27 May 2011 08:21:14 EDT." <6e074b83a55da47bb35cafb80845edc2@ladd.quanstro.net>

On Fri, 27 May 2011 08:21:14 EDT erik quanstrom <quanstro@quanstro.net>  wrote:
> >
> > Features such as atomic commits, changesets, branches, push,
> > pull, merge etc. can be useful in multiple contexts so it
> > would be nice if they can integrated smoothly in an FS.
> >
> > Example uses:
> > - A backup is nothing but a previous commit. A nightly
> >   backup cron job to do "echo `{date} > .commit"
> > - Initial system install is like a clone.
>
> the problem here is that no scm that i know of has storage
> capabilities.  you'd still need a file system underneath.

Yes.

> it
> sounds like you're proposing something completely different
> than hg, even if it's compatable on some level.

Perhaps a subset. I don't know.

> > - An OS upgrade is like a pull.
>
> is like, but they're different.  you can't take every file from
> the base.  one of the problems with replica is that it's hard
> to work out the local differences.  hg doesn't make this any
> easier.

You can keep a `vendor' branch in sync with the base.  local
changes in a separate `local' branch. Do a merge periodically.

> this is interesting, but what you're talking about sounds a
> lot more like user-controlled snapshotting than scm to me.

Use controlled snapshotting is basically what an scm does.  In
addition you can revert changes, maintain alternative
branches, share your changes with others and so on.

> do you propose being able to do this at any level in the fs
> heirarchy, or just at the root?  if not just at the root, how
> is a namespace constructed?

Yes, at any level. Wherever you might put .hg.  But I haven't
worked out lots of things.

> i'm not sure why one would want each machine's config in
> its own branch.  remerging default could be a real administrative
> pain.

In fact I used to keep configurations under scm.  Handy when
multiple machines have to be managed.

> in fact, i wonder how one would keep things sane.
> how would build some cannonical rules, like we have for
> the namespace (namespace(4))?

Don't know.  Since you asked if this is an interesting idea I
wrote up what I was thinking about but that doesn't mean much
of it is worked out!  This is research :-) Lots of half baked
ideas to sort through, lots of open questions.  On prototyping
it may turn out none of it makes any sense.

> > - Conversely old commits can be spilled to a backup
> >   media (current SCMs want the entire history online).
>
> backup media?  what's that?  ;-)

Or offsite.

A better integration can inspire new uses (at least for me
this is the case).
- a timemachine like program to animate changes in a file (or
  even a bird's eye view of changes in an entire repo). Scroll
  backward/forward in time.
- combining versioning + scripted push/pull can open up new
  new uses. For instance, commit before refetching pages from
  a website into webfs, and you can keep your own archive.
  Your own wayback machine :-)
- since each changeset has a unique signature, you don't have
  to fetch/keep an entire repo locally if you can fetch it
  from another node (but you can).  Instead you can share a
  repo with other people and only keep your local changes.
- Given this, you can boot up a new machine, configure it
  minimally, install this fs and start using the machine right
  away as things will be fetched on demand.  This is just
  using existing mechanisms in an SCM in a new way (but
  perhaps bending it in an extreme way).



  parent reply	other threads:[~2011-05-27 17:18 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-26  3:27 [9fans] 9vx bootimage build instructions? EBo
2011-05-26  3:37 ` erik quanstrom
2011-05-26  3:58   ` EBo
2011-05-26  4:05     ` EBo
2011-05-26  4:18       ` Devon H. O'Dell
2011-05-26  4:24       ` Bakul Shah
2011-05-26  7:40   ` yy
2011-05-26 14:06     ` [9fans] 9vx patches [was: 9vx bootimage build instructions?] EBo
2011-05-26 14:26       ` Devon H. O'Dell
2011-05-26 16:39         ` [9fans] hgfs? Bakul Shah
2011-05-26 22:12           ` simon softnet
2011-05-26 23:24           ` Iruatã Souza
2011-05-27  0:16             ` erik quanstrom
2011-05-27  8:12               ` Bakul Shah
2011-05-27 12:21                 ` erik quanstrom
2011-05-27 14:45                   ` Lucio De Re
2011-05-27 17:18                   ` Bakul Shah [this message]
2011-05-27 17:30                     ` erik quanstrom
2011-05-26 15:34       ` [9fans] 9vx patches [was: 9vx bootimage build instructions?] erik quanstrom
2011-05-26 18:17         ` EBo
2011-05-26 18:58           ` erik quanstrom
2011-05-26 19:17             ` EBo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110527171853.2EFA3B827@mail.bitblocks.com \
    --to=bakul@bitblocks.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).