From: Jeff King <peff@peff.net>
To: "J.H." <warthog19@eaglescrag.net>
Cc: Vincent Hanquez <tab@snarc.org>,
Jay Soffian <jaysoffian@gmail.com>,
Scott Chacon <schacon@gmail.com>,
Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org
Subject: Re: moving to a git-backed wiki
Date: Thu, 3 Feb 2011 12:45:18 -0500 [thread overview]
Message-ID: <20110203174518.GA14871@sigill.intra.peff.net> (raw)
In-Reply-To: <4D4A11D7.4040103@eaglescrag.net>
On Wed, Feb 02, 2011 at 06:24:23PM -0800, J.H. wrote:
> On 02/02/2011 01:55 AM, Vincent Hanquez wrote:
> > On 01/02/11 22:48, J.H. wrote:
> >> The wiki will almost universally have a "central site" no matter what
> >> the backend. Personally I see little advantage to having a git backed
> >> wiki myself.
> > with git based wiki, you can clone the whole wiki on your local machine,
> > and read/edit/commit on it locally using standard editor tool (i.e.
> > $EDITOR). and the history/revision/diff is completely built-in.
>
> That would be fine for things like source code or documentation, but you
> end up with a single person who would need to merge / push things to a
> central location, a-la git.wiki.kernel.org. You are now taking
> something, that is already editable by anyone, and making it only
> editable by a single person.
I don't think it makes sense to use the same workflow for the wiki as
git.git itself uses. The point of having a wiki is to keep the barrier
to editing extremely low; the point of source code control is to keep
the quality of contributions high.
But that doesn't mean they can't be accessed by the same tool.
Forget about a git-backed wiki for a moment, and imagine a regular old
Mediawiki. What are the operations you can perform? You can look at
the current or any past version of a page, you can do diffs between
versions of pages, and you can create a new version of a page. All
through some CGI forms.
So what stops us from replacing the CGI interface with a git one (or
adding it alongside)? Given the ability to retrieve current and past
versions of all pages, I could surely build a git repository of the
whole wiki (and update it incrementally as new edits were made). And
pushing a set of commits is just a sequential series of page edits, no?
And I think that would be enough for the purposes of this discussion.
Most of us don't really care if git is the ultimate storage mechanism. I
could even build the git interface as a purely client thing on top of
the CGI interface; the problem is that scraping the wiki pages for new
versions over the net would be horribly inefficient.
But the point is that accessing the wiki via git is not about changing
the wiki workflow. It's about providing a richer set of tools for doing
those page views, diffs, and edits.
Getting back to git as the actual backend:
> You also have a scalability problem. Git is *VERY* memory and i/o
> intensive. While you basically have a cache of data that is static (the
> basic pages you are viewing) things like the history, edits, etc can be
> quite expensive to generate.
Sure. But is that any worse than running gitweb, which you already do?
Or a site like GitHub, which basically is just running git constantly on
a bunch of repos? Or how much worse is it than running regular wiki
software? I mean, Foswiki is backed by RCS, for god's sake. Surely git
is more efficient than that. ;)
If it sounds like I'm handwaving away scalability problems, I am. I'd be
curious to see some performance numbers for gollum or ikiwiki versus
more traditional wiki formats.
> Think about a site, we'll use git.wiki.kernel.org, where it's not
> running on a single machine, but a cluster of machines (how many web
> infrastructures, including git.wiki.kernel.org run) and now you have a
> problem of an edit happens and commits on node3, a different conflicting
> edit happens on node9 and when those try to merge - you get conflicts.
Don't you have the same problem with a regular wiki? Or with stock git
repos, for that matter? You need database consistency.
-Peff
next prev parent reply other threads:[~2011-02-03 17:45 UTC|newest]
Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-31 5:53 What's cooking in git.git (Jan 2011, #06; Sun, 30) Junio C Hamano
2011-01-31 15:08 ` Sverre Rabbelier
2011-02-08 17:48 ` Sverre Rabbelier
2011-02-08 19:27 ` Junio C Hamano
2011-01-31 17:05 ` Planning for 1.7.5 and 1.8.0 Junio C Hamano
2011-01-31 17:06 ` [1.8.0] default "git merge" without argument to "git merge @{u}" Junio C Hamano
2011-01-31 20:14 ` Jeff King
2011-01-31 20:17 ` Junio C Hamano
2011-01-31 20:32 ` Felipe Contreras
2011-01-31 20:50 ` [1.8.0] (v2) " Junio C Hamano
2011-01-31 22:55 ` Jeff King
2011-02-01 0:01 ` Thomas Adam
2011-02-01 18:34 ` Scott Chacon
2011-02-01 20:11 ` moving to a git-backed wiki Jeff King
2011-02-01 22:36 ` Jay Soffian
2011-02-01 22:48 ` J.H.
2011-02-02 9:55 ` Vincent Hanquez
2011-02-02 10:53 ` Felipe Contreras
2011-02-02 11:14 ` Jakub Narebski
2011-02-03 2:24 ` J.H.
2011-02-03 17:45 ` Jeff King [this message]
2011-02-03 19:06 ` Sverre Rabbelier
2011-02-04 6:03 ` Jeff King
2011-02-03 20:34 ` Felipe Contreras
2011-02-04 6:16 ` Jeff King
2011-02-04 17:50 ` Felipe Contreras
2011-02-04 14:34 ` Joey Hess
2011-02-05 7:00 ` david
2011-02-04 7:31 ` [1.8.0] (v2) default "git merge" without argument to "git merge @{u}" Thomas Hochstein
2011-02-04 23:01 ` [PATCH/RFC] Add support for merging from upstream by default Jared Hance
2011-01-31 17:07 ` [1.8.0] Unify "pathspec" semantics Junio C Hamano
2011-02-01 14:56 ` Nguyen Thai Ngoc Duy
2011-01-31 20:28 ` [1.8.0] reorganize the mess that the source tree has become Nicolas Pitre
2011-01-31 20:57 ` Junio C Hamano
2011-01-31 21:08 ` Matthieu Moy
2011-01-31 21:33 ` Nicolas Pitre
2011-01-31 21:19 ` Nicolas Pitre
2011-01-31 21:00 ` Jeff King
2011-01-31 21:28 ` Nicolas Pitre
2011-01-31 22:17 ` Junio C Hamano
2011-01-31 22:36 ` João P. Sampaio
2011-01-31 22:37 ` Nicolas Pitre
2011-01-31 23:12 ` Jeff King
2011-02-01 0:29 ` Nicolas Pitre
2011-02-01 1:48 ` Jeff King
2011-02-01 4:05 ` Nicolas Pitre
2011-02-01 12:42 ` Thomas Rast
2011-02-01 11:14 ` Jonathan Nieder
2011-02-01 11:22 ` Jonathan Nieder
2011-02-01 13:08 ` Nicolas Pitre
2011-02-01 16:02 ` Nguyen Thai Ngoc Duy
2011-02-01 21:53 ` Junio C Hamano
2011-02-01 0:35 ` Erik Faye-Lund
2011-02-01 1:53 ` Jeff King
2011-02-01 1:00 ` Sverre Rabbelier
2011-02-01 1:57 ` Jeff King
2011-02-01 7:24 ` Jay Soffian
2011-02-01 14:42 ` Andreas Ericsson
2011-01-31 21:59 ` [1.8.0] 't/' is standard name for directory with tests Jakub Narebski
2011-01-31 22:32 ` Nicolas Pitre
2011-02-01 0:12 ` Alex Budovski
2011-02-01 0:33 ` Nicolas Pitre
2011-02-01 0:58 ` Jakub Narebski
2011-02-01 1:15 ` Junio C Hamano
2011-02-02 23:55 ` Sam Vilain
2011-02-01 18:26 ` [1.8.0] split largest remaining scripts, gitk and gitweb Jakub Narebski
2011-02-01 22:15 ` Junio C Hamano
2011-02-01 23:20 ` Jakub Narebski
2011-02-05 3:21 ` [1.8.0] reorganize the mess that the source tree has become Martin von Zweigbergk
2011-01-31 21:44 ` [1.8.0] make two-argument fetch update remote branches Thomas Rast
2011-01-31 22:18 ` Matthieu Moy
2011-01-31 22:24 ` Junio C Hamano
2011-01-31 22:27 ` Eugene Sajine
2011-01-31 23:06 ` Junio C Hamano
2011-01-31 23:39 ` Eugene Sajine
2011-02-01 1:13 ` Junio C Hamano
2011-01-31 23:22 ` Jeff King
2011-02-01 7:04 ` Jay Soffian
2011-02-01 15:58 ` Nguyen Thai Ngoc Duy
2011-02-01 22:09 ` Junio C Hamano
2011-02-01 21:05 ` A Large Angry SCM
2011-02-01 22:39 ` Thomas Rast
2011-02-01 23:25 ` A Large Angry SCM
2011-01-31 21:55 ` [1.8.0] forbid full fetchspecs in git-pull Thomas Rast
2011-01-31 22:38 ` Junio C Hamano
2011-01-31 23:15 ` Dmitry Potapov
2011-02-01 15:14 ` Thomas Rast
2011-02-01 20:23 ` Dmitry Potapov
2011-02-01 3:20 ` Planning for 1.7.5 and 1.8.0 Nguyen Thai Ngoc Duy
2011-02-01 4:16 ` Nicolas Pitre
2011-02-01 14:54 ` [1.8.0] Tag namespaces Marc Branchaud
2011-02-01 15:21 ` Nguyen Thai Ngoc Duy
2011-02-01 18:37 ` [1.8.0] Remove deprecated commands René Scharfe
2011-02-01 22:16 ` Junio C Hamano
2011-02-02 0:57 ` Jonathan Nieder
2011-02-10 19:42 ` René Scharfe
2011-02-10 20:56 ` Jonathan Nieder
2011-02-10 21:08 ` Junio C Hamano
2011-02-12 13:24 ` René Scharfe
2011-02-12 21:04 ` Jonathan Nieder
2011-02-13 23:14 ` Junio C Hamano
2011-02-01 21:41 ` [1.8.0] Handle submodule config options consistently in diff plumbing Jens Lehmann
2011-02-02 11:56 ` [1.8.0] Tracking empty directories Jakub Narebski
2011-02-02 23:23 ` Jay Soffian
2011-02-02 23:33 ` David Aguilar
2011-02-02 23:52 ` Jakub Narebski
2011-02-03 2:21 ` Wesley J. Landaker
2011-02-03 5:53 ` Jonathan Nieder
2011-02-03 10:07 ` Matthieu Moy
2011-02-05 7:43 ` Pete Harlan
2011-02-05 18:31 ` Thomas Koch
2011-02-05 19:00 ` Sverre Rabbelier
2011-02-05 22:37 ` Jared Hance
2011-02-06 20:41 ` Junio C Hamano
2011-02-06 20:46 ` Sverre Rabbelier
2011-02-06 4:42 ` Nguyen Thai Ngoc Duy
2011-02-02 17:23 ` [1.8.0] git-stash invocation changes Thomas Rast
2011-02-02 17:35 ` Shawn Pearce
2011-02-02 18:15 ` Matthieu Moy
2011-02-02 18:51 ` Thomas Rast
2011-02-09 14:35 ` Pat Notz
2011-02-23 19:54 ` [1.8.0] Don't copy "submodule.<name>.update" to .git/config on submodule init Jens Lehmann
2011-02-23 20:28 ` Junio C Hamano
2011-02-23 22:43 ` Jens Lehmann
2011-02-24 0:34 ` Junio C Hamano
2011-02-24 23:44 ` Jens Lehmann
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=20110203174518.GA14871@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jaysoffian@gmail.com \
--cc=schacon@gmail.com \
--cc=tab@snarc.org \
--cc=warthog19@eaglescrag.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).