From: Jeff King <peff@peff.net>
To: Claire Fousse <claire.fousse@ensimag.imag.fr>
Cc: git@vger.kernel.org, Sylvain Boulme <Sylvain.Boulme@imag.fr>,
"matthieu.moy" <Matthieu.Moy@grenoble-inp.fr>
Subject: Re: Git-Mediawiki : cloning a set of pages
Date: Wed, 8 Jun 2011 11:19:40 -0400 [thread overview]
Message-ID: <20110608151940.GD7805@sigill.intra.peff.net> (raw)
In-Reply-To: <BANLkTim1hOi0JdWZPR=Vw-S+9jTxqQ-=Tw@mail.gmail.com>
On Wed, Jun 08, 2011 at 01:19:38PM +0200, Claire Fousse wrote:
> The problem is not the feature in itself but the way you call it.
> Just so you remember, here is the command to clone the mediawiki :
> git clone mediawiki::http://yourwiki.com
>
> As it is now, git clone does not implement a way to define a set of pages.
> The 2 solutions we think of are :
> * git clone mediawiki::http://yourwiki.com$$page1$$page2 ...
> Where $$ is a separator still to be determined. It should not be
> something which could appear in the title of a page.
> It is a simple way to proceed but it becomes horrible when you want
> to clone many pages.
Ick, yeah, that is kind of ugly. I think this is a general problem with
the clone and remote helper interface that we are going to need to
solve. It seems like clone should allow transport-specific options to
pass through the command line and make it to the transport.
Something like:
git clone -c option=value mediawiki::http://...
where the "option" is up to the transport to interpret. It could be
implemented as a set of in-core options that get passed to the remote
helper over the pipe. But that leaves the helper with probably having to
store the options for future runs.
Maybe it would be even simpler and more flexible to give clone a "-c"
flag that writes specific config variables in the newly-created
repository. Like:
git clone -c mediawiki.page=page1 \
-c mediawiki.page=page2 \
http://...
Then the remote helper can just consult the git config. As a bonus, it
also lets you do things like:
git clone -c core.ignorecase=true git://...
which is currently awkward (you either have to have set such variable in
your ~/.gitconfig, or you must use init+config+fetch to do a clone
manually.
Getting back to mediawiki, that gives us a slightly nicer syntax, but
we're still specifying each page on the command line (and now it's even
more verbose!). I would think two things could help:
1. Some kind of globbing, like mediawiki.page="foo_*". The usefulness
of this will depend on how well pages in the wiki are named,
though.
2. Have a config option to point to a file containing page entries,
one per line.
> * write a git-mw-clone script which asks the user to enter a set
> of pages and may store this set of titles in the git config.
> This script should then call git-clone which will call the
> remote-mediawiki functions. git-mw-clone would clone the entire
> wiki and git-mw-clone --pages would ask the user to enter their
> set. The problem here is that a not git-like command is
> required.
Yeah, I like this less because you lose a lot of the seamlessness of the
remote helper solution.
-Peff
next prev parent reply other threads:[~2011-06-08 15:19 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-08 11:19 Git-Mediawiki : cloning a set of pages Claire Fousse
2011-06-08 15:19 ` Jeff King [this message]
2011-06-08 17:04 ` Sverre Rabbelier
2011-06-08 17:13 ` Jeff King
2011-06-09 15:50 ` Jeff King
2011-06-09 15:51 ` [PATCH 01/10] strbuf_split: add a max parameter Jeff King
2011-06-13 17:30 ` Junio C Hamano
2011-06-13 19:20 ` Jeff King
2011-06-09 15:51 ` [PATCH 02/10] fix "git -c" parsing of values with equals signs Jeff King
2011-06-09 15:52 ` [PATCH 03/10] config: die on error in command-line config Jeff King
2011-06-09 15:52 ` [PATCH 04/10] config: avoid segfault when parsing " Jeff King
2011-06-13 17:30 ` Junio C Hamano
2011-06-13 19:22 ` Jeff King
2011-06-09 15:54 ` [PATCH 05/10] strbuf: allow strbuf_split to work on non-strbufs Jeff King
2011-06-09 15:55 ` [PATCH 06/10] config: use strbuf_split_str instead of a temporary strbuf Jeff King
2011-06-09 15:55 ` [PATCH 07/10] parse-options: add OPT_STRING_LIST helper Jeff King
2011-06-09 15:55 ` [PATCH 08/10] remote: use new OPT_STRING_LIST Jeff King
2011-06-09 15:56 ` [PATCH 09/10] config: make git_config_parse_parameter a public function Jeff King
2011-06-09 15:57 ` [PATCH 10/10] clone: accept config options on the command line Jeff King
2011-06-09 17:10 ` Bert Wesarg
2011-06-09 17:12 ` Jeff King
2011-06-09 20:56 ` Jeff King
2011-06-09 22:34 ` Matthieu Moy
2011-06-08 17:14 ` Git-Mediawiki : cloning a set of pages Jakub Narebski
2011-06-09 9:06 ` Claire Fousse
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=20110608151940.GD7805@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=Sylvain.Boulme@imag.fr \
--cc=claire.fousse@ensimag.imag.fr \
--cc=git@vger.kernel.org \
/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).