git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Petr Baudis <pasky@suse.cz>
To: David Jeske <jeske@willowmail.com>
Cc: git@vger.kernel.org
Subject: Re: policy and mechanism for less-connected clients
Date: Wed, 25 Jun 2008 16:03:45 +0200	[thread overview]
Message-ID: <20080625140345.GA12567@machine.or.cz> (raw)

  Hi,

On Wed, Jun 25, 2008 at 12:36:03AM -0000, David Jeske wrote:
> The purpose of this mechanism is to host a distributed source repository in a
> world where most most developer contributors are behind firewalls and do not
> have access to, or do not want to configure a unix server, ftp, or ssh to
> possibly contribute to a project. The model of allowing less-authoritative
> developers to make their changes available for more-authoritative users to pull
> is accepted as superior. However, no users are assumed to be authoritative over
> each-other, or an entire tree, and many users should have authority only to
> supply new deltas to their own branches. The ability to handle emailed patches
> is an asset, but is deemed too manual for this need.

  BTW, have you read about git-bundle(1)?

> design assumptions:
> 
> - all developers are firewalled and can not be "pulled" from directly.
> - there can be one or more well-connected servers which all users can access.
> - .. but which they cannot have ssh, ftp, or other dangerous access to
> - .. and whose protocol should be layered on http(s)

  Please note that we support pushing using the HTTP DAV extensions. It
seems to be only rarely used in practice though, since developers seem
to either work at sane companies, are tunneling through the firewalls or
the firewalls are adjusted if this is required for development of their
day-job applications. There are some cases where this is useful, but I
don't tihnk they are very numerous (in practicular, I've had more
requests (about three?) for git-cvsserver than for HTTP DAV (zero to
one?) at repo.or.cz). Do _you_ have any real large-scale scenario where
this is an actual issue?

> - there is a shared namespace for branches, and tags
> - .. users are not-trusted to change the branches or tags of other users
> - .. only certain users are trusted to change the shared origin branches
> - .. also allow directory ACLS on shared branch commits
> - all their DAGs should be in a single repository for space efficiency
> - users generally want to follow well-named branches
> - .. will be free to follow any branch, and pull changes from any branch

  Of course, if pushing through the DAV extensions this can get hairy;
if you allow push access for users, you better trust them since they can
touch the objects database. If you don't care about possible DoS attack
vectors, I assume you could configure refs permissions for various users
using some fancy Apache configuration.

  As previously noted though, I believe the space efficiency is not an
issue in real world. Are you familiar with Git's alternates? In a Git
repository, you can specify alternate locations for searching objects,
so you can create a "sub-repository" for each user, where an alternate
is set up pointing to the object database of the main project
repository. Then, the bulk of the objects will be in the main repository
and the sub-repositories will carry only tiny amount of objects specific
to the local development of the given person.

  This is exactly how (and large reason of why) the repo.or.cz forks are
set up, by the way.

-- 
				Petr "Pasky" Baudis
The last good thing written in C++ was the Pachelbel Canon. -- J. Olson

             reply	other threads:[~2008-06-25 14:04 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-25 14:03 Petr Baudis [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-06-26 11:37 policy and mechanism for less-connected clients Theodore Tso
     [not found] ` <willow-jeske-01l6@3PlFEDjCVAh-01l6rSE7FEDjCYv6>
2008-06-26 16:21   ` David Jeske
2008-06-26 16:21   ` David Jeske
2008-06-26  5:23 Theodore Tso
2008-06-26  5:26 ` Junio C Hamano
     [not found] ` <willow-jeske-01l6@3PlFEDjCVAh-01l6it3ZFEDjCd5X>
2008-06-26  6:08   ` David Jeske
2008-06-26  6:08   ` David Jeske
2008-06-25 13:34 Theodore Tso
2008-06-25 17:34 ` Junio C Hamano
     [not found] ` <willow-jeske-01l6@3PlFEDjCVAh-01l6OB5yFEDjCYe3>
2008-06-25 19:37   ` David Jeske
2008-06-25 20:52     ` Jakub Narebski
2008-06-25 20:54     ` Jakub Narebski
2008-06-25 19:37   ` David Jeske
     [not found]     ` <willow-jeske-01l6@3PlFEDjCVAh-01l6XqjPFEDjCY6P>
2008-06-25 21:34       ` David Jeske
2008-06-25 21:34       ` David Jeske
2008-06-25 22:10         ` Jakub Narebski
2008-06-25 22:13         ` Junio C Hamano
     [not found]           ` <willow-jeske-01l6@3PlFEDjCVAh-01l6[3InFEDjC[dy>
2008-06-25 23:03             ` David Jeske
2008-06-25 23:03             ` David Jeske
2008-06-25  2:33 Theodore Tso
     [not found] ` <willow-jeske-01l6@3PlFEDjCVAh-01l6@3N@FEDjCXZO>
2008-06-25  5:20   ` David Jeske
2008-06-25 19:17     ` Daniel Barkalow
2008-06-25 20:12       ` Raimund Bauer
2008-06-25  5:20   ` David Jeske
2008-06-25  9:30     ` Jakub Narebski
2008-06-25  0:36 David Jeske
2008-06-25  0:36 David Jeske

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=20080625140345.GA12567@machine.or.cz \
    --to=pasky@suse.cz \
    --cc=git@vger.kernel.org \
    --cc=jeske@willowmail.com \
    /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).