From: Darren Hart <dvhart@linux.intel.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: yocto@yoctoproject.org
Subject: Re: Personal git repositories
Date: Thu, 28 Apr 2011 21:04:28 -0700 [thread overview]
Message-ID: <4DBA38CC.5080805@linux.intel.com> (raw)
In-Reply-To: <4DB89D1E.3010307@intel.com>
On 04/27/2011 03:47 PM, Darren Hart wrote:
> On 04/27/2011 02:03 PM, Richard Purdie wrote:
>> On Wed, 2011-04-27 at 10:20 -0700, Elizabeth Flanagan wrote:
>>> A few notes, since I talked with Darren about this earlier.
>>>
>>> As one of the people in charge of maintaining the git repo, I would like to
>>> avoid having, as Darren suggested, a whole bunch of -contrib repos. However,
>>> maybe I'm missing something here, as I think basic git solves this issue:
>>>
>>> Use Case: Tomz has a branch of meta-intel that he has pushed to
>>> poky-contrib.git:tomz/foo. dvhart wants to look at it from his local repo:
>
> I'm curious how many people reading this feel this is "basic git". Anyone
> willing to admit this was the first time they have seen a targeted branch
> fetch used to avoid a larger download? If everyone is comfortable with this,
> fine. If not, we should consider the impact of this type of access on our
> users.
>
>>> git remote add poky-contrib ssh://git@git.pokylinux.org/poky-contrib.git
>>> git fetch poky-contrib tomz/foo:foo
>>> git checkout foo
>
> My biggest complaint with this is the lack of self discovery from within git
> without doing a git remote update. Unless tomz is online at the time to tell me
> it's tomz/foo-bar, not tomz/foo_bar, then I have to go load the web browser and
> check which branches are available, or resort to downloading all the objects.
I just realized another major issue I have with this approach. It
doesn't just mean that I _can_ use git fetch to get a specific branch to
avoid pulling in a massive pile of objects I don't need, it means I have
to stop using "git remote update" entirely for everything else I do in
that repository and I have to fetch all the other branches manually. The
recommended approach here is VIRAL.
--
Darren
>
>
> I confess though, it still just feels wrong to keep unrelated source trees in
> the same repository.
>
>>>
>>> The fetch allows a sparse checkout of *just* tomz's branch. No need to
>>> download all 75M of poky-contrib which is what you would do with "git remote
>>> update". Git remote update is the wrong way to do this and I'd like to avoid
>>> having to swap infrastructure around when it seems to me that this is just
>>> one of those "git being a pain to learn"
>>
>> Just to add to this discussion, with gitolite, it should be easy to
>> setup a yocto-contrib repo where each user "owns" the branches under
>> <keyname>/*. This means as ssh keys are added, they'd automatically get
>> their own "scratch" area. As Beth points out above, its perfectly
>> possible to checkout branches and manipulate them as long as you know
>> the commands.
>>
>> This isn't a set of repos per user but when you think about this, how
>> often do we really need that? Yes, some people like Bruce have usecases
>> but I'm not sure they're typical and in those small number of cases I'm
>> sure we can come up with some generic testing/dev repos to assist too.
>> As soon as something grows to the point where the branch is problematic,
>> it deserves its own repo and it should be properly namespaced, not user
>> specific anyway.
>
>
> I don't understand wanting to keep multiple distinct source trees in a single
> git repositorie. If you have two different layers in there, each in its own
> branch, then you can only work with one of them at a time. The end-user then has
> to have multiple clones of the same repository in order to work with their two
> layers. And they will end up naming them something like:
>
> yocto-contrib-layer-1.git
> yocto-contrib-layer-2.git
>
> And keep them checked out to the appropriate set of branches... that seems like
> a lot of pain to impose on users to avoid setting up personal git repositories.
> Personally, I think I would revert to my kernel.org repositories rather than try
> and make this work.
>
> Or - is my git-fu weak? Is there a better way to handle the above?
>
--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
prev parent reply other threads:[~2011-04-29 4:04 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-27 3:00 Personal git repositories Darren Hart
2011-04-27 3:22 ` Bruce Ashfield
2011-04-27 3:57 ` Darren Hart
2011-04-27 4:37 ` Saul Wold
2011-04-27 4:56 ` Darren Hart
2011-04-27 4:39 ` Tom Zanussi
2011-04-27 4:53 ` Darren Hart
2011-04-27 5:05 ` Tom Zanussi
2011-04-27 6:35 ` Darren Hart
2011-04-27 7:56 ` Koen Kooi
2011-04-27 14:45 ` Darren Hart
2011-04-27 17:20 ` Elizabeth Flanagan
2011-04-27 18:14 ` Joshua Lock
2011-04-27 18:29 ` Elizabeth Flanagan
2011-04-27 21:03 ` Richard Purdie
2011-04-27 22:47 ` Darren Hart
2011-04-28 0:59 ` Bruce Ashfield
2011-04-28 3:12 ` Xianghua Xiao
2011-04-28 8:28 ` Richard Purdie
2011-04-28 14:56 ` Bruce Ashfield
2011-04-28 17:07 ` Darren Hart
2011-04-29 4:04 ` Darren Hart [this message]
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=4DBA38CC.5080805@linux.intel.com \
--to=dvhart@linux.intel.com \
--cc=richard.purdie@linuxfoundation.org \
--cc=yocto@yoctoproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.