From: Avery Pennarun <apenwarr@gmail.com>
To: Chani <chanika@gmail.com>
Cc: Johan Herland <johan@herland.net>, git@vger.kernel.org
Subject: Re: partial checkouts
Date: Sun, 24 May 2009 15:45:12 -0400 [thread overview]
Message-ID: <32541b130905241245m7139c766v73f6fe2aeda1fcf9@mail.gmail.com> (raw)
In-Reply-To: <200905231726.10361.chanika@gmail.com>
On Sat, May 23, 2009 at 8:26 PM, Chani <chanika@gmail.com> wrote:
> On May 23, 2009 16:34:53 Johan Herland wrote:
>> On Saturday 23 May 2009, Chani wrote:
>> > I'm kinda wondering if there'd be a way to use git-filter-branch to make
>> > a repo that only tracks the doc/ folder for a module - but I've no idea
>> > whether it'd have to be recreated from scratch every time someone changes
>> > something in the real repo's doc/
>> >
>> > can anyone think of a less ugly solution?
>> > what are the chances of git supporting this kind of partial checkout
>> > someday?
>>
>> Check out git-subtree. It can split out a subdirectory into its own repo,
>> and re-integrate it back into the "parent" repo at a later date.
>> git-subtree has been posted as a patch to this list a couple of times
>> without much response, but it looks like an interesting alternative to
>> submodules: http://alumnit.ca/~apenwarr/log/?m=200904#30
>
> looks interesting. might have been a solution until I heard about this
> requirement to not change workflow at all. :/
Here's something that might work. Write a script that runs on a
server somewhere. It checks out *all* of the git-managed KDE
components, including documentation (it's okay to do this from *one*
place, right?). Then it loops through all the documentation
subdirectories and splits them out into individual projects/branches
with 'git subtree split'.
You could then make a *new* project, kde-docs for example, that pulls
those new doc projects back together into a single project, using 'git
subtree merge'.
People could then checkout the single kde-docs project and get *all*
the docs, then make changes and push them back upstream to you. As
far as the average person is concerned, this is probably even easier
than svn:externals - they don't have to remember to commit in each
subdirectory separately, as git-subtree rips it all apart later. Also
note that *end users* never have to operate the git subtree command;
all that happens behind the scenes on your server.
Later, you use 'git subtree split' to rip it apart back into the
individual projects, and 'git subtree merge' those back into their
original git repositories.
Since git-subtree is my own little toy and it's designed for exactly
this kind of workflow, I'd be happy to help you debug a script for
this if you like. Probably I'll learn something.
Disclaimer: git-subtree hasn't been used by too many people yet and we
may end up finding some bugs.
Have fun,
Avery
next prev parent reply other threads:[~2009-05-24 19:45 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-23 21:00 partial checkouts Chani
2009-05-23 23:34 ` Johan Herland
2009-05-24 0:26 ` Chani
2009-05-24 19:45 ` Avery Pennarun [this message]
2009-05-25 3:07 ` Chani
2009-05-25 14:51 ` Aidan Van Dyk
2009-05-24 2:07 ` Nguyen Thai Ngoc Duy
2009-05-24 15:57 ` Thomas Adam
2009-05-25 1:51 ` Nguyen Thai Ngoc Duy
[not found] <1D6034426110564DA0DEA9EE9793B38357BE874673@NBE-MBX01.americas.swk.pri>
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=32541b130905241245m7139c766v73f6fe2aeda1fcf9@mail.gmail.com \
--to=apenwarr@gmail.com \
--cc=chanika@gmail.com \
--cc=git@vger.kernel.org \
--cc=johan@herland.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).