git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Petr Baudis <pasky@ucw.cz>
To: Daniel Barkalow <barkalow@iabervon.org>
Cc: git@vger.kernel.org
Subject: Re: [3/5] Add http-pull
Date: Sun, 17 Apr 2005 21:08:24 +0200	[thread overview]
Message-ID: <20050417190824.GF1461@pasky.ji.cz> (raw)
In-Reply-To: <Pine.LNX.4.21.0504171412350.30848-100000@iabervon.org>

Dear diary, on Sun, Apr 17, 2005 at 08:49:11PM CEST, I got a letter
where Daniel Barkalow <barkalow@iabervon.org> told me that...
> On Sun, 17 Apr 2005, Petr Baudis wrote:
> > > Index: http-pull.c
> > > ===================================================================
> > > --- /dev/null  (tree:d662b707e11391f6cfe597fd4d0bf9c41d34d01a)
> > > +++ 157b46ce1d82b3579e2e1258927b0d9bdbc033ab/http-pull.c  (mode:100644 sha1:106ca31239e6afe6784e7c592234406f5c149e44)
> > > +	url = malloc(strlen(base) + 50);
> > 
> > Off-by-one. What about the trailing NUL?
> 
> I get length(base) + "object/"=8 + 40 SHA1 + 1 for '/' and 1 for NUL = 50.

Sorry, counted one '/' more. :-)

> > I think you should have at least two disjunct modes - either you are
> > downloading everything related to the given commit, or you are
> > downloading all commit records for commit predecessors.
> > 
> > Even if you might not want all the intermediate trees, you definitively
> > want the intermediate commits, to keep the history graph contignuous.
> > 
> > So in git pull, I'd imagine to do
> > 
> > 	http-pull -c $new_head
> > 	http-pull -t $(tree-id $new_head)
> > 
> > So, -c would fetch a given commit and all its predecessors until it hits
> > what you already have on your side. -t would fetch a given tree with all
> > files and subtrees and everything. http-pull shouldn't default on
> > either, since they are mutually exclusive.
> > 
> > What do you think?
> 
> I think I'd rather keep the current behavior and add a -c for getting the
> history of commits, and maybe a -a for getting the history of commits and
> their tress.

I'm not too kind at this. Either make it totally separate commands, or
make a required switch specifying what to do. Otherwise it implies the
switches would just modify what it does, but they make it do something
completely different.

-a would be fine too - basically a combination of -c and -t. I'd imagine
that is what Linus would want to use, e.g.

> There's some trickiness for the history of commits thing for stopping at
> the point where you have everything, but also behaving appropriately if
> you try once, fail partway through, and then try again. It's on my queue
> of things to think about.

Can't you just stop the recursion when you hit a commit you already
have?

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor

  reply	other threads:[~2005-04-17 19:04 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20050417144947.GG1487@pasky.ji.cz>
2005-04-17 15:20 ` [0/5] Patch set for various things Daniel Barkalow
2005-04-17 15:24   ` [1/5] Parsing code in revision.h Daniel Barkalow
2005-04-17 16:09     ` Petr Baudis
2005-04-17 16:44       ` Daniel Barkalow
2005-04-17 18:18     ` [1/5] " Linus Torvalds
2005-04-17 18:30       ` Petr Baudis
2005-04-17 19:25         ` Linus Torvalds
2005-04-17 19:45           ` Daniel Barkalow
2005-04-17 19:54             ` Linus Torvalds
2005-04-17 20:06               ` Linus Torvalds
2005-04-17 20:22                 ` Daniel Barkalow
2005-04-17 19:09       ` Daniel Barkalow
2005-04-17 15:27   ` [2/5] Add merge-base Daniel Barkalow
2005-04-17 16:01     ` Petr Baudis
2005-04-17 16:36       ` Daniel Barkalow
2005-04-17 16:51     ` [2.1/5] " Daniel Barkalow
2005-04-17 21:21       ` Petr Baudis
2005-04-17 21:25         ` Daniel Barkalow
2005-04-17 15:31   ` [3/5] Add http-pull Daniel Barkalow
2005-04-17 18:10     ` Petr Baudis
2005-04-17 18:49       ` Daniel Barkalow
2005-04-17 19:08         ` Petr Baudis [this message]
2005-04-17 19:24           ` Daniel Barkalow
2005-04-17 19:59             ` Petr Baudis
2005-04-21  3:27               ` Brad Roberts
2005-04-21  4:28                 ` Daniel Barkalow
2005-04-21 22:05                   ` tony.luck
2005-04-22 19:46                     ` Daniel Barkalow
2005-04-22 22:40                       ` Petr Baudis
2005-04-22 23:00                         ` Daniel Barkalow
2005-04-22 23:08                           ` Petr Baudis
2005-04-22 23:12                             ` Daniel Barkalow
2005-04-22 23:24                               ` Martin Schlemmer
2005-04-17 18:58     ` [3.1/5] " Daniel Barkalow
2005-04-17 15:35   ` [4/5] Add option for hardlinkable cache of extracted blobs Daniel Barkalow
2005-04-17 17:47     ` Petr Baudis
2005-04-17 18:54       ` Daniel Barkalow
2005-04-17 19:25       ` Paul Jackson
2005-04-17 19:59         ` Petr Baudis
2005-04-17 20:03           ` Daniel Barkalow
2005-04-17 20:18             ` Petr Baudis
2005-04-18  1:35               ` Paul Jackson
2005-04-18  1:48                 ` Petr Baudis
2005-04-18  4:49                   ` Paul Jackson
2005-04-17 20:58             ` Russell King
2005-04-17 22:10               ` First ever real kernel git merge! Linus Torvalds
2005-04-18  1:24             ` [4/5] Add option for hardlinkable cache of extracted blobs Paul Jackson
2005-04-18  1:20           ` Paul Jackson
2005-04-17 15:37   ` [5/5] Add commit-id to version Daniel Barkalow
2005-04-22 23:34 [3/5] Add http-pull Luck, Tony

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050417190824.GF1461@pasky.ji.cz \
    --to=pasky@ucw.cz \
    --cc=barkalow@iabervon.org \
    --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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).