git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Adam Brewster" <adambrewster@gmail.com>
To: git@vger.kernel.org
Cc: "Mark Levedahl" <mdl123@verizon.net>,
	"Junio C Hamano" <gitster@pobox.com>,
	"Jakub Narebski" <jnareb@gmail.com>
Subject: Re: [PATCH/v2] git-basis, a script to manage bases for git-bundle
Date: Thu, 3 Jul 2008 19:38:21 -0400	[thread overview]
Message-ID: <c376da900807031638l219229bcy983ed994b37512c9@mail.gmail.com> (raw)
In-Reply-To: <20080703195915.GA18532@sigill.intra.peff.net>

>
> Yes, certainly it is more flexible to have them split. I find Adam's
> argument the most compelling, though. Think about moving commits as a
> multi-step protocol:
>
>  1. Local -> Remote: Here are some new commits, basis..current
>  2. Remote -> Local: OK, I am now at current.
>  3. Local: update basis to current
>
> git-push has the luxury of asking for "basis" each time, so we know it
> is correct. But with bundles, we can't do that. And failing to update
> "basis" means we will send some extra commits next time. But updating
> "basis" when we shouldn't means that the next bundle will be broken.
>
> So I think even if people _do_ want to update "basis" when they create
> the bundle (because it is more convenient, and they are willing to
> accept the possibility of losing sync), it is trivial to create that
> workflow on top of the separate components. But I can see why somebody
> might prefer the separate components, and it is hard to create them if
> the feature is lumped into "git-bundle" (meaning in such a way that you
> cannot perform the steps separately; obviously git-bundle --basis would
> be equivalent).
>
> But I am not a bundle user, so that is just my outsider perspective.
>
> -Peff
>

How does everybody feel about the following:

- Leave git-basis as a small perl script.

- Add a -b/--basis option in git-bundle that calls git-basis.  Any
objects mentioned in the output would be excluded from the bundle.
Multiple --basis options will call git-basis once with several
arguments to generate the intersection of specified bases.

- (maybe) Add an option "--update-bases" to automatically call
git-basis --update after the bundle is created successfully.

- Change the syntax a bit so git-basis --show does what git-basis
alone does now (because the user will no longer need to interact with
that command).

There's still plenty of potential for improvements, like a --gc mode
to clean up basis files, a --rewind option to undo an incorrect
--update, or improvements in the way it calculates intersections, but
I think that with these changes the system is as simple as possible
while maximizing flexibility, utility, and usability.

Adam

  reply	other threads:[~2008-07-03 23:39 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1214272713-7808-1-git-send-email-adambrewster@gmail.com>
2008-06-30 22:49 ` [PATCH/v2] git-basis, a script to manage bases for git-bundle Adam Brewster
2008-07-01  9:51   ` Jeff King
2008-07-02  1:36     ` Adam Brewster
2008-07-02  2:10       ` Jay Soffian
2008-07-02  2:16         ` Adam Brewster
2008-07-02  2:21           ` Jay Soffian
2008-07-02  3:21       ` Jeff King
2008-07-02  9:44         ` Jakub Narebski
2008-07-03 19:59           ` Jeff King
2008-07-03 23:38             ` Adam Brewster [this message]
2008-07-04  0:44               ` Johannes Schindelin
2008-07-04  2:04                 ` Adam Brewster
2008-07-04 16:47                 ` Mark Levedahl
2008-07-04 20:55                   ` Jakub Narebski
2008-07-04 19:51               ` Jeff King
2008-07-01 23:55   ` Junio C Hamano
2008-07-02  0:16     ` Mark Levedahl
2008-07-03 23:13       ` Adam Brewster
2008-07-04 13:14         ` Mark Levedahl
2008-07-04 13:22           ` Johannes Schindelin
2008-07-04 13:49             ` Mark Levedahl
2008-07-02  2:12     ` Adam Brewster

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=c376da900807031638l219229bcy983ed994b37512c9@mail.gmail.com \
    --to=adambrewster@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jnareb@gmail.com \
    --cc=mdl123@verizon.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).