Git development
 help / color / mirror / Atom feed
* gitweb.cgi history not shown
From: Marco Costalba @ 2006-06-11  5:31 UTC (permalink / raw)
  To: junkio; +Cc: git

What I do wrong?

$ git-rev-list --all -- gitweb/gitweb.cgi
0a8f4f0020cb35095005852c0797f0b90e9ebb74
$ git-rev-list --all -- gitweb.cgi
$

Also the installed gitweb at kernel.org gives an empty history for
file gitweb.cgi under git repository, while the history is correctly
shown for the same file under the gitweb project.

    Marco

^ permalink raw reply

* Re: Problem upgrading to 1.4.0
From: Junio C Hamano @ 2006-06-11  2:12 UTC (permalink / raw)
  To: git; +Cc: Geoff Russell
In-Reply-To: <93c3eada0606101707t5eb35a4du3ebd0fd17737943f@mail.gmail.com>

"Geoff Russell" <geoffrey.russell@gmail.com> writes:

> Hi,
>
> When I do a "git pull origin" I get messages:
>
>             error: no such remote ref refs/heads/gb/diffdelta
>             error: no such remote ref refs/heads/jc/bind
>             error: no such remote ref refs/heads/jc/bind-2
>             ...
>             Fetch failure: git://git.kernel.org/pub/scm/git/git.git
>...
> So I went into .git/remotes/origin and
> removed the lines pointing at these branches and removed the gb and jc
> directories
> and did another git pull and it seems to have worked.

This is the second time this same gotcha caused trouble here.  I
agree it would be sensible to make git-fetch (which is called by
git-pull) to detect stale entries in the remotes/origin file and
remote.origin.fetch configuration items.

^ permalink raw reply

* Re: [BUG?] git-clone fails on .git/refs/foo
From: Junio C Hamano @ 2006-06-11  2:08 UTC (permalink / raw)
  To: Yann Dirson; +Cc: git
In-Reply-To: <20060610225040.GA7766@nowhere.earth>

Yann Dirson <ydirson@altern.org> writes:

> Could it be that git-clone has a problem when a ref is not inside a
> subdir of .git/refs ?
>
> Both 1.3.3 and 1.4.0 show the following problem, which prevents
> cloning from this repo:

I think it always has been like that, not that I consider it is
not a bug.

^ permalink raw reply

* Problem upgrading to 1.4.0
From: Geoff Russell @ 2006-06-11  0:07 UTC (permalink / raw)
  To: git

Hi,

When I do a "git pull origin" I get messages:

             error: no such remote ref refs/heads/gb/diffdelta
             error: no such remote ref refs/heads/jc/bind
             error: no such remote ref refs/heads/jc/bind-2
             ...
             Fetch failure: git://git.kernel.org/pub/scm/git/git.git

So I figured these branches were "in the way" so I deleted them:

                git branch -D gb/diffdelta
                etc.

Again "git pull origin" gives the same errors.

So I went into .git/remotes/origin and
removed the lines pointing at these branches and removed the gb and jc
directories
and did another git pull and it seems to have worked.

I would suggest that when the pull detects the missing remote ref, it
should clean
up the remotes/origin file. Or have I done entirely the wrong thing?

Cheers,
Geoff Russell.

^ permalink raw reply

* Re: [ANNOUNCE] GIT 1.4.0
From: Junio C Hamano @ 2006-06-10 23:42 UTC (permalink / raw)
  To: Paolo Ciarrocchi; +Cc: git
In-Reply-To: <4d8e3fd30606101547x46b94058u3bb48ba8d25dc48d@mail.gmail.com>

"Paolo Ciarrocchi" <paolo.ciarrocchi@gmail.com> writes:

> Ok, solved doing (as suggested on #git)
> /.git/remotes$ vi origin
> and removed:
> Pull: jc/bind:jc/bind
>
> What happened to that branch?

It was an experiment for "bind commit" which has been vetoed and
discarded now.  Sorry about the confusion.

^ permalink raw reply

* [BUG?] git-clone fails on .git/refs/foo
From: Yann Dirson @ 2006-06-10 22:50 UTC (permalink / raw)
  To: GIT list

Could it be that git-clone has a problem when a ref is not inside a
subdir of .git/refs ?

Both 1.3.3 and 1.4.0 show the following problem, which prevents
cloning from this repo:

$ git-clone http://ydirson.free.fr/soft/git/cvsps.git test
Getting alternates list for http://ydirson.free.fr/soft/git/cvsps.git/
Getting pack list for http://ydirson.free.fr/soft/git/cvsps.git/
Getting index for pack 5d9ec186a71fb6a464878518335275fe7d061a1f
Getting pack 5d9ec186a71fb6a464878518335275fe7d061a1f
 which contains de4e8c0aa352effae581924d07d2613799c2a5de
walk de4e8c0aa352effae581924d07d2613799c2a5de
walk 3e2d77cddea626fd4513087e0352ff9116f6d93b
walk a21e7d37b22621c626faf25b32006bb1e6f7055b
walk 1affe7d46c773d7a2136e66e927b09fa3c6a61d7
walk fdf44680988ce53173262c8f6cb6b478a6ab04a9
walk 4e3aa38681c849d6931dd56d958fff6abf3ea38e
walk bb6b1ea1a785e10bee7bfba294012a821ddc3bd1
walk ab0095940796152f171d2de4fbd60ecc6ed433c3
walk cb7644a9650ef8521d5befb5ee43b7525445dc97
error: Can't lock ref posted0

-- 
Yann Dirson    <ydirson@altern.org> |
Debian-related: <dirson@debian.org> |   Support Debian GNU/Linux:
                                    |  Freedom, Power, Stability, Gratis
     http://ydirson.free.fr/        | Check <http://www.debian.org/>

^ permalink raw reply

* Re: [ANNOUNCE] GIT 1.4.0
From: Paolo Ciarrocchi @ 2006-06-10 22:47 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, linux-kernel
In-Reply-To: <4d8e3fd30606101537n2d099ee4g5e86956bdfc5cb5@mail.gmail.com>

On 6/11/06, Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com> wrote:
> On 6/10/06, Junio C Hamano <junkio@cox.net> wrote:
> > The latest feature release GIT 1.4.0 is available at the
> > usual places:
> >
> >         http://www.kernel.org/pub/software/scm/git/
>
> Cannot pull:
>
> paolo@Italia:~/git$ git pull
> error: no such remote ref refs/heads/jc/bind
> Fetch failure: git://www.kernel.org/pub/scm/git/git.git

Ok, solved doing (as suggested on #git)
/.git/remotes$ vi origin
and removed:
Pull: jc/bind:jc/bind

What happened to that branch?

Thanks.

Ciao,

-- 
Paolo
http://paolociarrocchi.googlepages.com

^ permalink raw reply

* Re: [ANNOUNCE] GIT 1.4.0
From: Paolo Ciarrocchi @ 2006-06-10 22:37 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, linux-kernel
In-Reply-To: <7vmzckhfsx.fsf@assigned-by-dhcp.cox.net>

On 6/10/06, Junio C Hamano <junkio@cox.net> wrote:
> The latest feature release GIT 1.4.0 is available at the
> usual places:
>
>         http://www.kernel.org/pub/software/scm/git/

Cannot pull:

paolo@Italia:~/git$ git pull
error: no such remote ref refs/heads/jc/bind
Fetch failure: git://www.kernel.org/pub/scm/git/git.git

Am I alone?

Ciao,
-- 
Paolo
http://paolociarrocchi.googlepages.com

^ permalink raw reply

* Re: Git-daemon messing up permissions for gitweb
From: Alex Riesen @ 2006-06-10 22:30 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Post, Mark K, Junio C Hamano, git
In-Reply-To: <Pine.LNX.4.64.0606101439530.5498@g5.osdl.org>

Linus Torvalds, Sat, Jun 10, 2006 23:41:52 +0200:
> >
> >      ~/.ssh/rc
> > 
> > AFAIK, it was always there.
> 
> Note that since umask is a per-process flag, and only inherited from 
> parents to children, not the other way around, if the rc file is run as a 
> separate shell script (and I assume it is) instead of "sourced" from the 
> the shell that actually executes the programs you run, then this won't 
> help at all.

Right, it doesn't. I should have tried ~/.ssh/rc with umask, really.
Because of this it can't be used for environment too (that's why they
have ~/.ssh/environment).

^ permalink raw reply

* Re: [ANNOUNCE] GIT 1.4.0
From: Tilman Sauerbeck @ 2006-06-10 22:05 UTC (permalink / raw)
  To: git
In-Reply-To: <7vmzckhfsx.fsf@assigned-by-dhcp.cox.net>

[-- Attachment #1: Type: text/plain, Size: 399 bytes --]

Junio C Hamano [2006-06-10 14:16]:
> 	git-htmldocs-1.4.0.tar.{gz,bz2}		(preformatted documentation)
> 	git-manpages-1.4.0.tar.{gz,bz2}		(preformatted documentation)

Thanks! :)

Regards,
Tilman

-- 
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply

* Re: Git-daemon messing up permissions for gitweb
From: Linus Torvalds @ 2006-06-10 21:41 UTC (permalink / raw)
  To: Alex Riesen; +Cc: Post, Mark K, Junio C Hamano, git
In-Reply-To: <20060610213051.GB5825@steel.home>



On Sat, 10 Jun 2006, Alex Riesen wrote:
>
>      ~/.ssh/rc
> 
> AFAIK, it was always there.

Note that since umask is a per-process flag, and only inherited from 
parents to children, not the other way around, if the rc file is run as a 
separate shell script (and I assume it is) instead of "sourced" from the 
the shell that actually executes the programs you run, then this won't 
help at all.

Try:

	sh -c "umask 0777 ; umask" ; umask

to see in more graphic ("textual") detail what I mean.

		Linus

^ permalink raw reply

* Re: Git-daemon messing up permissions for gitweb
From: Alex Riesen @ 2006-06-10 21:30 UTC (permalink / raw)
  To: Post, Mark K; +Cc: Linus Torvalds, Junio C Hamano, git
In-Reply-To: <5A14AF34CFF8AD44A44891F7C9FF410507957896@usahm236.amer.corp.eds.com>

Post, Mark K, Fri, Jun 09, 2006 22:52:22 +0200:
> Since umask isn't an environment variable, per se, I'm not sure how this
> will change anything.

$ ssh -V
OpenSSH_4.2p1, OpenSSL 0.9.7i 14 Oct 2005

$ man sshd
     ~/.ssh/rc
             If this file exists, it is run with /bin/sh after reading the
             environment files but before starting the user's shell or com-
             mand.  It must not produce any output on stdout; stderr must be
             used instead.  If X11 forwarding is in use, it will receive the
             "proto cookie" pair in its standard input (and DISPLAY in its
             environment).  The script must call xauth(1) because sshd will
             not run xauth automatically to add X11 cookies.

AFAIK, it was always there.

^ permalink raw reply

* [ANNOUNCE] GIT 1.4.0
From: Junio C Hamano @ 2006-06-10 21:16 UTC (permalink / raw)
  To: git; +Cc: linux-kernel

The latest feature release GIT 1.4.0 is available at the
usual places:

	http://www.kernel.org/pub/software/scm/git/

	git-1.4.0.tar.{gz,bz2}			(tarball)
	git-htmldocs-1.4.0.tar.{gz,bz2}		(preformatted documentation)
	git-manpages-1.4.0.tar.{gz,bz2}		(preformatted documentation)
	RPMS/$arch/git-*-1.4.0-1.$arch.rpm	(RPM)

This is a significant update since v1.3.0 (and v1.3.3 which is
the same codebase with bugfixes-only).  User visible changes
are:

 - Many commands are now coded in C instead of implemented as
   shell scripts.

 - Checkout is more careful not to clobber untracked files.

 - You can "alias" git commands with leading arguments in your
   configuration file.

 - Documentation set, especially the tutorial, has been reworked.

 - Comes with the latest gitk, gitweb, and contributed software.

----------------------------------------------------------------

Changes since v1.3.0 are as follows:

Alex Riesen:
      make update-index --chmod work with multiple files and --stdin
      remove superflous "const"

Aneesh Kumar K.V:
      gitview: Add key binding for F5.
      gitview: Move the console error messages to message dialog
      gitview: Add some useful keybindings.

Ben Clifford:
      include header to define uint32_t, necessary on Mac OS X

Björn Engelmann:
      remove the artificial restriction tagsize < 8kb
      add more informative error messages to git-mktag

Catalin Marinas:
      Add a test-case for git-apply trying to add an ending line

Christian Couder:
      Builtin git-rev-parse.

Dennis Stosberg:
      Fix git-pack-objects for 64-bit platforms
      Fix compilation on newer NetBSD systems
      git-write-tree writes garbage on sparc64
      git-clean fails on files beginning with a dash
      Update documentation for git-format-patch

Dmitry V. Levin:
      Separate object name errors from usage errors
      execv_git_cmd: Fix stack buffer overflow.
      git_exec_path, execv_git_cmd: ignore empty environment variables

Elrond:
      git-cvsimport: Handle "Removed" from pserver

Eric W. Biederman:
      Implement git-quiltimport
      Implement a --dry-run option to git-quiltimport
      Make read_one_header_line return a flag not a length.
      Move B and Q decoding into check header.
      Refactor commit messge handling.
      In handle_body only read a line if we don't already have one.
      More accurately detect header lines in read_one_header_line
      Allow in body headers beyond the in body header prefix.

Eric Wong:
      git-svn: documentation updates
      git-svn 1.0.0
      apply: fix infinite loop with multiple patches with --index
      send-email: address expansion for common mailers
      Install git-send-email by default
      send-email: allow sendmail binary to be used instead of SMTP
      send-email: quiet some warnings, reject invalid addresses
      Install git-send-email by default
      commit: allow --pretty= args to be abbreviated
      git-svn: starting a 1.1.0-pre development version
      git-svn: ignore expansion of svn:keywords
      t3300-funny-names: shell portability fixes
      tests: Remove heredoc usage inside quotes
      t5500-fetch-pack: remove local (bashism) usage.
      t6000lib: workaround a possible dash bug
      git-svn: t0001: workaround a heredoc bug in old versions of dash
      git-svn: remove assertion that broke with older versions of svn

Florian Forster:
      git-svnimport: Improved detection of merges.

Francis Daly:
      Some doc typo fixes
      config.txt grammar, typo, and asciidoc fixes
      git-cvsserver asciidoc formatting tweaks

Fredrik Kuivinen:
      blame: Fix path pruning
      Update the documentation for git-merge-base

Horst H. von Brand:
      Documentation: Spelling fixes
      Cleanup git-send-email.perl:extract_valid_email
      Add example xinetd(8) configuration to Documentation/everyday.txt
      Fix Documentation/everyday.txt: Junio's workflow
      Fix formatting of Documentation/git-clone.txt

Horst von Brand:
      Fix some documentation typoes

Huw Davies:
      git-format-patch: Use rfc2822 compliant date.

J. Bruce Fields:
      tutorial: replace "whatchanged" by "log"
      tutorial: expanded discussion of commit history
      tutorial: add discussion of index file, object database
      documentation: mention gitk font adjustment in tutorial
      documentation: add brief mention of cat-file to tutorial part I
      Documentation: retitle the git-core tutorial
      Documentation: fix a tutorial-2 typo

Jeff King:
      cvsimport: use git-update-index --index-info
      cvsimport: cleanup commit function
      cvsimport: set up commit environment in perl instead of using env
      cat-file: document -p option
      cvsimport: avoid "use" with :tag
      handle concurrent pruning of packed objects
      sha1_file: avoid re-preparing duplicate packs

Jim Meyering:
      Don't write directly to a make target ($@).

Johannes Schindelin:
      builtin-push: resurrect parsing of Push: lines
      cache-tree: replace a sscanf() by two strtol() calls
      builtin-push: also ask config for remote information
      fetch, pull: ask config for remote information
      repo-config: fix segfault with no argument.
      repo-config: trim white-space before comment
      repo-config: support --get-regexp
      repo-config: deconvolute logics
      fetch, pull: ask config for remote information
      Add a conversion tool to migrate remote information into the config
      builtin-push: --all and --tags _are_ explicit refspecs
      Teach fmt-patch to write individual files.
      fmt-patch: output file names to stdout
      fmt-patch: implement -o <dir>
      Teach fmt-patch about --numbered
      Teach fmt-patch about --keep-subject
      repo-config: trim white-space before comment
      fmt-patch: understand old <his> notation
      Fix users of prefix_path() to free() only when necessary
      Fix users of prefix_path() to free() only when necessary
      Fix crash when reading the empty tree
      diff family: add --check option
      fmt-patch: Support --attach
      git-format-patch --start-number <n>
      send-email: only 'require' instead of 'use' Net::SMTP
      format-patch: resurrect extra headers from config
      If you have a config containing something like this:

Jon Loeliger:
      Alphabetize the glossary.
      Added definitions for a few words:
      Add a few more words to the glossary.
      Refactor git_tcp_connect() functions a little.

Jonas Fonseca:
      Fix filename scaling for binary files
      Misc doc improvements
      Document git-ls-tree --fullname

Josef Weidendorfer:
      gitk: Add a visual tag for remote refs

Junio C Hamano:
      Fix up default abbrev in setup_revisions() argument parser.
      Fix up rev-list option parsing.
      Split init_revisions() out of setup_revisions()
      rev-list option parser fix.
      Built-in git-whatchanged.
      Do not fork PAGER=cat
      Simplify common default options setup for built-in log family.
      log/whatchanged/show - log formatting cleanup.
      rev-list --header: output format fix
      git.c: LOGSIZE is unused after log printing cleanup.
      combine-diff: show diffstat with the first parent.
      Fix "git log --stat": make sure to set recursive with --stat.
      Tentative built-in format-patch.
      sha1_name.c: prepare to make get_tree_entry() reusable from others.
      sha1_name.c: no need to include diff.h; tree-walk.h will do.
      get_tree_entry(): make it available from tree-walk
      Minor tweak on subject line in --pretty=email
      git-merge: a bit more readable user guidance.
      pre-commit hook: complain about conflict markers.
      diff: move diff.c to diff-lib.c to make room.
      Add git-unresolve <paths>...
      diff --stat: do not drop rename information.
      git-update-index --unresolve
      git-commit --amend: two fixes.
      rename internal format-patch wip
      pack-objects: do not stop at object that is "too small"
      mailinfo: decode underscore used in "Q" encoding properly.
      Makefile: dependency for builtin-help.o
      Add colordiff for git to contrib/colordiff.
      Fix "git show --stat"
      Libify diff-files.
      Libify diff-index.
      git-fmt-patch: thinkofix to show properly.
      Libified diff-index: backward compatibility fix.
      read-cache/write-cache: optionally return cache checksum SHA1.
      Add cache-tree.
      Update write-tree to use cache-tree.
      Invalidate cache-tree entries for touched paths in git-apply.
      Use cache-tree in update-index.
      Add test-dump-cache-tree
      cache-tree: protect against "git prune".
      index: make the index file format extensible.
      Teach fsck-objects about cache-tree.
      cache-tree: sort the subtree entries.
      test-dump-cache-tree: report number of subtrees.
      Makefile: remove and create libgit.a from scratch.
      diff --stat: show complete rewrites consistently.
      git-cvsserver: typofixes
      t0000-basic: Add ls-tree recursive test back.
      Makefile: remove and create xdiff library from scratch.
      commit-tree: allow generic object name for the tree as well.
      rebase: typofix.
      commit-tree.c: check_valid() microoptimization.
      revision parsing: make "rev -- paths" checks stronger.
      t0000-basic: more commit-tree tests.
      update-index: when --unresolve, smudge the relevant cache-tree entries.
      read-tree: teach 1 and 2 way merges about cache-tree.
      read-tree: teach 1-way merege and plain read to prime cache-tree.
      diff-index: fix compilation warnings.
      verify-pack: check integrity in a saner order.
      cache_tree_update: give an option to update cache-tree only.
      test-dump-cache-tree: validate the cached data as well.
      pack-objects: update size heuristucs.
      built-in count-objects.
      cache-tree.c: typefix
      git-am --resolved: more usable error message.
      built-in diff.
      built-in diff: assorted updates.
      builtin-diff.c: die() formatting type fix.
      Fix builtin-push to honor Push: lines in remotes file.
      Extended SHA1 -- "rev^@" syntax to mean "all parents"
      get_sha1(): :path and :[0-3]:path to extract from index.
      built-in "git grep"
      Use RFC2822 dates from "git fmt-patch".
      builtin-grep: wildcard pathspec fixes
      builtin-grep: support '-l' option.
      builtin-grep: do not use setup_revisions()
      fsck-objects: mark objects reachable from cache-tree
      builtin-count-objects: make it official.
      builtin-diff: call it "git-diff", really.
      builtin-log/whatchanged/show: make them official.
      show-branch: omit uninteresting merges.
      builtin-push: make it official.
      builtin-grep: printf %.*s length is int, not ptrdiff_t.
      Revert "fetch, pull: ask config for remote information"
      builtin-grep: allow -<n> and -[ABC]<n> notation for context lines.
      builtin-grep: allow more than one patterns.
      builtin-grep: support -c (--count).
      builtin-grep: support -w (--word-regexp).
      builtin-grep: tighten path wildcard vs tree traversal.
      core.prefersymlinkrefs: use symlinks for .git/HEAD
      repo-config: readability fixups.
      builtin-count-objects: open packs when running -v
      Fix test-dump-cache-tree in one-tree disappeared case.
      read-tree: invalidate cache-tree entry when a new index entry is added.
      cache-tree: a bit more debugging support.
      builtin-grep: terminate correctly at EOF
      builtin-grep: binary files -a and -I
      fsck-objects: do not segfault on missing tree in cache-tree
      builtin-grep: -L (--files-without-match).
      Makefile: do not link rev-list any specially.
      delta: stricter constness
      core.prefersymlinkrefs: use symlinks for .git/HEAD
      pack-object: squelch eye-candy on non-tty
      binary patch.
      binary diff: further updates.
      update-index --unresolve: work from a subdirectory.
      checkout-index: plug memory leak from prefix_path()
      update-index: plug memory leak from prefix_path()
      update-index --again
      update-index --again: take optional pathspecs
      binary diff and apply: testsuite.
      repo-config: document what value_regexp does a bit more clearly.
      Fix repo-config set-multivar error return path.
      Teach -f <file> option to builtin-grep.
      builtin-grep: documentation
      Documentation: {caret} fixes (git-rev-list.txt)
      get_sha1() - fix infinite loop on nonexistent stage.
      Teach git-clean optional <paths>... parameters.
      builtin-grep: tighten argument parsing.
      builtin-grep: typofix
      builtin-grep: -w fix
      builtin-grep: -F (--fixed-strings)
      checkout: use --aggressive when running a 3-way merge (-m).
      checkout: use --aggressive when running a 3-way merge (-m).
      diffstat rename squashing fix.
      read-tree -u one-way merge fix to check out locally modified paths.
      apply --numstat: show new name, not old name.
      Fix pack-index issue on 64-bit platforms a bit more portably.
      builtin-grep: unparse more command line options.
      apply --cached: apply a patch without using working tree.
      git-am: use apply --cached
      builtin-diff: fix comparison between two blobs.
      merge-base: Clarify the comments on post processing.
      read-tree -m -u: do not overwrite or remove untracked working tree files.
      builtin-grep: workaround for non GNU grep.
      Revert "builtin-grep: workaround for non GNU grep."
      apply --cached: do not check newly added file in the working tree
      builtin-add: fix unmatched pathspec warnings.
      builtin-diff: do not say files are renamed when blob and file are given
      Fix build procedure for builtin-init-db
      built-in tar-tree and remote tar-tree
      git-format-patch: now built-in.
      checkdiff_consume: strtol parameter fix.
      git-rebase: use canonical A..B syntax to format-patch
      tutorial-2: typofix in examples.
      mailinfo: skip bogus UNIX From line inside body
      CMIT_FMT_EMAIL: Q-encode Subject: and display-name part of From: fields.
      builtin format-patch: squelch content-type for 7-bit ASCII
      diff: minor option combination fix.
      fetch-pack: output refs in the order they were given on the command line.
      Tutorial #2: broken link fix.
      builtin-rm: squelch compiler warnings.
      cvsimport: do not barf on creation of an empty file.
      apply: force matching at the beginning.
      fetch.c: remove an unused variable and dead code.
      ls-remote: fix rsync:// to report HEAD
      mailinfo: More carefully parse header lines in read_one_header_line()
      gitk: start-up bugfix
      built-in format-patch: various fixups.
      format-patch: -n and -k are mutually exclusive.
      Let git-clone to pass --template=dir option to git-init-db.
      git-fetch: avoid using "case ... in (arm)"
      adjust to the rebased series by Linus.
      send-email: do not pass bogus address to local sendmail binary
      format-patch --signoff
      fetch.c: do not pass uninitialized lock to unlock_ref().
      fetch.c: do not call process_tree() from process_tree().
      fetch: do not report "same" unless -verbose.
      read-tree --reset: update working tree file for conflicted paths.
      git alias: try alias last.
      rev-parse: tighten constness properly.
      send-email: be more lenient and just catch obvious mistakes.
      send-email: a bit more careful domain regexp.
      git-format-patch: add --output-directory long option again
      HTTP cleanup
      Make index file locking code reusable to others.
      refs.c: convert it to use lockfile interface.
      ref-log: style fixes.
      Documentation: add missing docs make check-docs found.
      make clean: remove dist-doc targets.
      Documentation: git-ls-tree (typofix)
      Documentation: add another example to git-ls-files
      git-clone: fix duplicated "master" in $GIT_DIR/remotes/origin
      git-rm: honor -n flag.
      builtin-init-db: spell the in-program configuration variable in lowercase.
      shared repository - add a few missing calls to adjust_shared_perm().
      git-clone: fix --bare over dumb-http
      GIT 1.4.0

Linus Torvalds:
      Common option parsing for "git log --diff" and friends
      Tentative built-in "git show"
      Fixes for option parsing
      Log message printout cleanups
      Log message printout cleanups (#2)
      Log message printout cleanups (#3): fix --pretty=oneline
      Fix uninteresting tags in new revision parsing
      get_sha1() shorthands for blob/tree objects
      Allow "git repack" users to specify repacking window/depth
      git log: don't do merge diffs by default
      git-log produces no output
      Split up builtin commands into separate files from git.c
      Fix filename verification when in a subdirectory
      Fix "git help -a" terminal autosizing
      git builtin "push"
      Fix "git-log --parents" breakage post v1.3.0
      sha1_to_hex() usage cleanup
      Fix "git diff --stat" with long filenames
      revert/cherry-pick: use aggressive merge.
      git config syntax updates
      git diff: support "-U" and "--unified" options properly
      Allow one-way tree merge to remove old files
      Simplify "git reset --hard"
      builtin-grep: use external grep when we can take advantage of it
      read-tree --reset -u fix.
      Fix silly typo in new builtin grep
      Remove old "git-grep.sh" remnants
      libify git-ls-files directory traversal
      Clean up git-ls-file directory walking library interface
      Do "git add" as a builtin
      builtin-add: warn on unmatched pathspecs
      builtin-grep: workaround for non GNU grep.
      Remove old "git-add.sh" remnants
      Prevent bogus paths from being added to the index.
      Make "git rev-list" be a builtin
      Libify the index refresh logic
      Move pathspec matching from builtin-add.c into dir.c
      Add builtin "git rm" command
      cvsimport: repack every kilo-commits.
      apply: treat EOF as proper context.
      Clean up sha1 file writing
      bogus "fatal: Not a git repository"
      t1002: use -U0 instead of --unified=0
      Fix "--abbrev=xyz" for revision listing
      Fix memory leak in "git rev-list --objects"
      Don't use "sscanf()" for tree mode scanning
      Add raw tree buffer info to "struct tree"
      Make "tree_entry" have a SHA1 instead of a union of object pointers
      Switch "read_tree_recursive()" over to tree-walk functionality
      Remove "tree->entries" tree-entry list from tree parser
      Make "struct tree" contain the pointer to the tree buffer
      Make "tree_entry" have a SHA1 instead of a union of object pointers
      Switch "read_tree_recursive()" over to tree-walk functionality
      builtin-read-tree.c: avoid tree_entry_list in prime_cache_tree_rec()
      Remove "tree->entries" tree-entry list from tree parser
      fsck-objects: avoid unnecessary tree_entry_list usage
      Remove unused "zeropad" entry from tree_list_entry
      Convert "mark_tree_uninteresting()" to raw tree walker
      Convert fetch.c: process_tree() to raw tree walker
      Remove last vestiges of generic tree_entry_list
      tree_entry(): new tree-walking helper function
      read-tree: fix eye-candy.
      Fix typo in tutorial-2.txt
      rev-list: fix process_tree() conversion.
      pack-objects: improve path grouping heuristics.

Lukas Sandström:
      Make git-check-format-ref a builtin.
      SubmittingPatches: The download location of External Editor has moved

Martin Langhoff:
      git-cvsexportcommit: Add -f(orce) and -m(essage prefix) flags, small cleanups.
      git-send-email: fix version string to be valid perl
      cvsserver: use git-rev-list instead of git-log
      cvsserver: use git-rev-list instead of git-log
      cvsimport: minor fixups
      cvsimport: replace anonymous sub ref with a normal sub
      cvsimport: introduce -L<imit> option to workaround memory leaks
      cvsimport: introduce _fetchfile() method and used a 1M buffer to read()

Martin Waitz:
      clone: keep --reference even with -l -s
      repack: honor -d even when no new pack was created
      Transitively read alternatives
      test case for transitive info/alternates
      clone: don't clone the info/alternates file
      git help: remove whatchanged from list of common commands
      Documentation/Makefile: remove extra /
      Add instructions to commit template.

Martyn Smith:
      Added logged warnings for CVS error returns
      Many fixes for most operations in Eclipse.
      Change to allow subdir updates from Eclipse

Matthias Kestenholz:
      annotate: fix warning about uninitialized scalar
      annotate: display usage information if no filename was given
      fix various typos in documentation
      add documentation for update-index --unresolve

Matthias Lederhofer:
      core-tutorial.txt: escape asterisk
      git status: skip empty directories, and add -u to show all untracked files

Nick Hengeveld:
      git-fetch: resolve remote symrefs for HTTP transport
      http: prevent segfault during curl handle reuse
      builtin-push: don't pass --thin to HTTP transport
      HTTP cleanup
      http-fetch: fix possible segfault

Nicolas Pitre:
      fix pack-object buffer size
      split the diff-delta interface
      use delta index data when finding best delta matches
      replace adler32 with Rabin's polynomial in diff-delta
      tiny optimization to diff-delta
      improve diff-delta with sparse and/or repetitive data
      improve base85 generated assembly code
      fix diff-delta bad memory access
      simple euristic for further free packing improvements
      pack-object: slightly more efficient
      improve depth heuristic for maximum delta size

Paul Mackerras:
      gitk: Implement multiple views
      gitk: Make File->Update work properly again
      gitk: Fix various bugs in the view support
      gitk: Don't reread git-rev-list output from scratch on view switch
      gitk: Remember the view in the history list
      gitk: Let git-rev-list do the argument list parsing
      gitk: Use git-rev-parse only to identify file/dir names on cmd line
      rev-parse: better error message for ambiguous arguments
      gitk: Implement "permanent" views (stored in ~/.gitk)
      gitk: add menu item for editing the current view
      gitk: Use a text widget for the file list
      gitk: Add a tree-browsing mode
      gitk: Basic support for highlighting one view within another
      gitk: Fix file list display when files are renamed
      gitk: Allow view to specify arbitrary arguments to git-rev-list
      gitk: Fix display of "(...)" for parents/children we haven't drawn
      Provide a way to flush git-diff-tree's output
      gitk: Make a row of controls for controlling highlighting
      gitk: Fix bug where page-up/down wouldn't always work properly
      gitk: Highlight entries in the file list as well
      gitk: Highlight paths of interest in tree view as well
      gitk: First cut at a search function in the patch/file display window
      gitk: Improve the text window search function
      gitk: Move "pickaxe" find function to highlight facility
      gitk: Fix bug in highlight stuff when no line is selected
      gitk: show_error fix
      gitk: Provide ability to highlight based on relationship to selected commit
      Make git-diff-tree indicate when it flushes
      gitk: Add a goto next/previous highlighted commit function
      gitk: Show nearby tags
      gitk: Show branch name(s) as well, if "show nearby tags" is enabled
      gitk: Re-read the descendent/ancestor tag & head info on update

Paul T Darga:
      check for error return from fork()

Pavel Roskin:
      Release config lock if the regex is invalid

Peter Eriksen:
      Add git-quiltimport to .gitignore.
      Builtin git-ls-files.
      Builtin git-ls-tree.
      Builtin git-tar-tree.
      Builtin git-read-tree.
      Builtin git-commit-tree.
      Builtin git-apply.
      Builtin git-show-branch.
      Builtin git-diff-files, git-diff-index, git-diff-stages, and git-diff-tree.

Peter Hagervall:
      Sparse fix for builtin-diff

Petr Baudis:
      Document git-var -l listing also configuration variables
      Document the configuration file
      git-repo-config --list support
      Deprecate usage of git-var -l for getting config vars list
      Call builtin ls-tree in git-cat-file -p
      Document git aliases support
      Documentation: git aliases

Rene Scharfe:
      Off-by-one error in get_path_prefix(), found by Valgrind
      Built-in git-get-tar-commit-id

Robert Fitzsimons:
      builtin-grep: pass ignore case option to external grep

Robert Shearman:
      Give the user a hint for how to continue in the case that git-am fails because it requires user intervention

Ryan Anderson:
      git-send-email: Add References: headers to emails, in addition to In-Reply-To:
      Add support for --bcc to git-send-email.
      Fix a bug in email  extraction used in git-send-email.
      Add a basic test case for git send-email, and fix some real bugs discovered.

Salikh Zakirov:
      Fixed Cygwin CR-munging problem in mailsplit

Santi:
      Document that "git add" only adds non-ignored files.

Santi_Béjar:
      Reintroduce svn pools to solve the memory leak.

Sean Estabrooks:
      Add --continue and --abort options to git-rebase.
      Update the git-branch man page to include the "-r" option,
      Fix up remaining man pages that use asciidoc "callouts".
      Properly render asciidoc "callouts" in git man pages.
      Fix trivial typo in git-log man page.
      Several trivial documentation touch ups.
      Fix up docs where "--" isn't displayed correctly.
      Update git-unpack-objects documentation.
      Clarify git-cherry documentation.
      Fix for config file section parsing.
      Another config file parsing fix.
      t1300-repo-config: two new config parsing tests.
      Another config file parsing fix.
      Add "--branches", "--tags" and "--remotes" options to git-rev-parse.
      Ensure author & committer before asking for commit message.
      Make git rebase interactive help match documentation.
      Add "--summary" option to git diff.
      Convert some "apply --summary" users to "diff --summary".
      Strip useless "tags/" prefix from git-tag -l output
      Allow pickaxe and diff-filter options to be used by git log.
      Avoid segfault in diff --stat rename output.
      Change GIT-VERSION-GEN to call git commands with "git" not "git-".
      Install git builtins into gitexecdir rather than bindir.
      Remove possible segfault in http-fetch.
      --summary output should print immediately after stats.
      A Perforce importer for git.

Serge E. Hallyn:
      socksetup: don't return on set_reuse_addr() error
      socksetup: don't return on set_reuse_addr() error

Sergey Vlasov:
      gitk: Display commit messages with word wrap

Shawn Pearce:
      Document git-clone --reference
      Remove unnecessary local in get_ref_sha1.
      Improve abstraction of ref lock/write.
      Convert update-ref to use ref_lock API.
      Log ref updates to logs/refs/<ref>
      Support 'master@2 hours ago' syntax
      Fix ref log parsing so it works properly.
      General ref log reading improvements.
      Added logs/ directory to repository layout.
      Force writing ref if it doesn't exist.
      Log ref updates made by fetch.
      Change 'master@noon' syntax to 'master@{noon}'.
      Correct force_write bug in refs.c
      Change order of -m option to update-ref.
      Include ref log detail in commit, reset, etc.
      Create/delete branch ref logs.
      Enable ref log creation in git checkout -b.
      Reference git-check-ref-format in git-branch.
      Elaborate on why ':' is a bad idea in a ref name.
      Built git-upload-tar should be ignored.
      Verify git-commit provides a reflog message.
      Test that git-branch -l works.
      Remove unnecessary output from t3600-rm.
      Improved pack format documentation.
      Allow multiple -m options to git-commit.

Tilman Sauerbeck:
      Documentation/Makefile: create tarballs for the man pages and html files

Timo Hirvonen:
      Builtin git-init-db
      Builtin git-cat-file
      gitk: Replace "git-" commands with "git "

Uwe Zeisberger:
      Document git-clone --use-separate-remote

Yakov Lerner:
      read-cache.c: use xcalloc() not calloc()
      NO_INET_NTOP and compat/inet_ntop.c for some systems (e.g. old Cygwin).
      Problem: 'trap...exit' causes error message when /bin/sh is ash.

Yann Dirson:
      Do not call 'cmp' with non-existant -q flag.
      Document current cvsexportcommit limitations.
      Make cvsexportcommit create parent directories as needed.

^ permalink raw reply

* Re: gitk on Windows: layout problem
From: Christopher Faylor @ 2006-06-10 20:34 UTC (permalink / raw)
  To: git
In-Reply-To: <20060610111321.GA6790@nospam.com>

On Sat, Jun 10, 2006 at 01:13:21PM +0200, Rutger Nijlunsing wrote:
>On Sat, Jun 03, 2006 at 07:43:38PM +1000, Paul Mackerras wrote:
>> Rutger Nijlunsing writes:
>>>Is this a known problem?  gitk-du-jour on Windows starts up with an
>>>unusable layout.  Screenshot attached.
>>
>>Is that using Tk with the cygwin X server, or the native Windows Tk
>>port?
>
>I installed the default cygwin version but I don't have to start an X
>server for it.  So while it's not the native Windows Tk port, it also
>doesn't seem to be the X-server version.

Cygwin's Tk is pretty close to a pure windows version.  It doesn't even
understand cygwin path names.  Its main purpose is to support the
insight debugger and it does not require an X-server to run.

^ permalink raw reply

* Re: [PATCH] Ignore commits for which cvsps can't identify a branch
From: Christian Biesinger @ 2006-06-10 19:45 UTC (permalink / raw)
  To: Yann Dirson; +Cc: GIT list
In-Reply-To: <20060610192457.GA6620@nowhere.earth>

Yann Dirson wrote:
> I have seen such CVSPS_NO_BRANCH things with "cvsps -u", and could
> always get rid of it using "cvspx -x".  Christian, did you try to run
> "cvsps -x" to be sure the cache is valid, and did it get rid of the
> CVSPS_NO_BRANCH ?  It could help if you could make a cvsps cache
> available, which exhibits the problem.

I'm pretty sure that I did use -x and didn't have a cache. Unfortunately 
I don't have anything about that cvsps setup available anymore.

^ permalink raw reply

* Re: [PATCH] Ignore commits for which cvsps can't identify a branch
From: Yann Dirson @ 2006-06-10 19:24 UTC (permalink / raw)
  To: Christian Biesinger; +Cc: GIT list
In-Reply-To: <200602102102.k1AL2Xkd010415@biesi.no-ip.org>

On Fri, Feb 10, 2006 at 10:02:33PM +0100, Christian Biesinger wrote:
> cvps sometimes can't identify a branch for a specific revision, it shows
> messages like:
>   WARNING: revision 1.36.2.2 of file Makefile.in on unnamed branch
> and uses #CVSPS_NO_BRANCH as branch name in its output.

This issue is a bit old, but still...

I have seen such CVSPS_NO_BRANCH things with "cvsps -u", and could
always get rid of it using "cvspx -x".  Christian, did you try to run
"cvsps -x" to be sure the cache is valid, and did it get rid of the
CVSPS_NO_BRANCH ?  It could help if you could make a cvsps cache
available, which exhibits the problem.

Best regards,
-- 
Yann Dirson    <ydirson@altern.org> |
Debian-related: <dirson@debian.org> |   Support Debian GNU/Linux:
                                    |  Freedom, Power, Stability, Gratis
     http://ydirson.free.fr/        | Check <http://www.debian.org/>

^ permalink raw reply

* Re: Figured out how to get Mozilla into git
From: Lars Johannsen @ 2006-06-10 18:55 UTC (permalink / raw)
  To: Jon Smirl; +Cc: git
In-Reply-To: <9e4733910606100844v5f4765d8o85c9a6f239faed43@mail.gmail.com>

On (10/06/06 11:44), Jon Smirl wrote:
> Date:	Sat, 10 Jun 2006 11:44:58 -0400
> From:	"Jon Smirl" <jonsmirl@gmail.com>
> To:	"Junio C Hamano" <junkio@cox.net>
> Subject: Re: Figured out how to get Mozilla into git
> Cc:	git@vger.kernel.org
> 
> On 6/10/06, Junio C Hamano <junkio@cox.net> wrote:
> >"Jon Smirl" <jonsmirl@gmail.com> writes:
> >
> >> Here's a new transport problem. When using git-clone to fetch Martin's
> >> tree it kept failing for me at dreamhost. I had a parallel fetch
> >> running on my local machine which has a much slower net connection. It
> >> finally finished and I am watching the end phase where it prints all
> >> of the 'walk' messages. The git-http-fetch process has jumped up to
> >> 800MB in size after being 2MB during the download. dreamhost has a
> >> 500MB process size limit so that is why my fetches kept failing there.
> >
> >The http-fetch process uses by mmaping the downloaded pack, and
> >if I recall correctly we are talking about 600MB pack, so 500MB
> >limit sounds impossible, perhaps?
> 
> The fetch on my local machine failed too. It left nothing behind, now
> I have to download the 680MB again.
> 
> walk 1f19465388a4ef7aff7527a13f16122a809487d4
> walk c3ca840256e3767d08c649f8d2761a1a887351ab
> walk 7a74e42699320c02b814b88beadb1ae65009e745
> error: Couldn't get
> http://mirrors.catalyst.net.nz/pub/mozilla.git//refs/tags/JS%5F1%5F7%5FALPHA%5FBASE
> for tags/JS_1_7_ALPHA_BASE
> Couldn't resolve host 'mirrors.catalyst.net.nz'
> error: Could not interpret tags/JS_1_7_ALPHA_BASE as something to pull
> [jonsmirl@jonsmirl mozgit]$ cg update
> There is no GIT repository here (.git not found)
> [jonsmirl@jonsmirl mozgit]$ ls -a
> .  ..
> [jonsmirl@jonsmirl mozgit]$

To prevent repeat (on this repo) your could grab it with a browser:
-mkdir tmp; cd tmp; git init-db;
-copy  mirror../pu/mozilla.git/objects/*  to .git/objects/
-copy   --||---.git/info/refs to refsinfo in tmp-dir
gawk '{if  ($2 !~ /\^\{\}$/) print $1 > sprintf(".git/%s",$2);}' refsinfo
 to extract branches and tags into ./git/refs/{heads,tags}
start playing (after a backup) with git-fsck-objects, git-checkout etc.
 
-- 
Lars Johannsen 
mail@Lars-johannsen.dk

^ permalink raw reply

* Re: Figured out how to get Mozilla into git
From: Petr Baudis @ 2006-06-10 18:37 UTC (permalink / raw)
  To: Jon Smirl; +Cc: Junio C Hamano, git
In-Reply-To: <9e4733910606100844v5f4765d8o85c9a6f239faed43@mail.gmail.com>

Dear diary, on Sat, Jun 10, 2006 at 05:44:58PM CEST, I got a letter
where Jon Smirl <jonsmirl@gmail.com> said that...
> The fetch on my local machine failed too. It left nothing behind, now
> I have to download the 680MB again.
> 
> walk 1f19465388a4ef7aff7527a13f16122a809487d4
> walk c3ca840256e3767d08c649f8d2761a1a887351ab
> walk 7a74e42699320c02b814b88beadb1ae65009e745
> error: Couldn't get
> http://mirrors.catalyst.net.nz/pub/mozilla.git//refs/tags/JS%5F1%5F7%5FALPHA%5FBASE
> for tags/JS_1_7_ALPHA_BASE
> Couldn't resolve host 'mirrors.catalyst.net.nz'
> error: Could not interpret tags/JS_1_7_ALPHA_BASE as something to pull
> [jonsmirl@jonsmirl mozgit]$ cg update
> There is no GIT repository here (.git not found)
> [jonsmirl@jonsmirl mozgit]$ ls -a
> .  ..
> [jonsmirl@jonsmirl mozgit]$

  You could try with cg-clone, which won't delete the repository if
things fail. It will clone only the master branch, though.

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
A person is just about as big as the things that make them angry.

^ permalink raw reply

* Re: Figured out how to get Mozilla into git
From: Rogan Dawes @ 2006-06-10 18:36 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Jon Smirl, Martin Langhoff, git
In-Reply-To: <Pine.LNX.4.64.0606101041490.5498@g5.osdl.org>

Linus Torvalds wrote:
> 
> On Sat, 10 Jun 2006, Rogan Dawes wrote:
>> Here's an idea. How about separating trees and commits from the actual blobs
>> (e.g. in separate packs)? My reasoning is that the commits and trees should
>> only be a small portion of the overall repository size, and should not be that
>> expensive to transfer. (Of course, this is only a guess, and needs some
>> numbers to back it up.)
> 
> The trees in particular are actually a pretty big part of the history. 
> 
> More importantly, the blobs compress horribly badly in the absense of 
> history - a _lot_ of the compression in git packing comes very much from 
> the fact that we do a good job at delta-compression.
> 
> So if you get all of the commit/tree history, but none of the blob 
> history, you're actually not going to win that much space. As already 
> discussed, the _whole_ history packed with git is usually not insanely 
> bigger than just the whole unpacked tree (with no history at all).
> 
> So you'd think that getting just the top version of the tree would be a 
> much bigger space-saving that it actually is. If you _also_ get all the 
> tree and commit objects, the space saving is even less.
> 

One possibility, given that the full commit and tree history is so
large, is simply to get the HEAD commit and the trees that the commit
depends directly on, rather than fetching them all up front.

> I actually suspect that the most realistic way to handle this is to use 
> the "fetch.c" logic (ie the incremental fetcher used by http), and add 
> some mode to the git daemon where you fetch literally one object at a time 
> (ie this would be totally _separate_ from the pack-file thing: you'd not 
> ask for "git-upload-pack", you'd ask for something like 
> "git-serve-objects" instead).
> 
> The fetch.c logic really does allow for on-demand object fetching, and is 
> thus much more suitable for incomplete repositories.
> 
> HOWEVER. The fetch.c logic - by necessity - works on a object-by-object 
> level. That means that you'd get no delta compression AT ALL, and I 
> suspect that the downside of that would be a factor of ten expansion or 
> more, which means that it would really not work that well in practice.

Would it be possible to add a mode where fetch.c is given a list of 
desired objects, and returns a list of pointers to those objects? Then 
callers that already have such a list could be modified to pass the 
whole list at once, allowing at least SOME compression, and optimisation 
of round trips, etc? There would be a tradeoff in memory use, though, I 
guess.

Rogan

^ permalink raw reply

* Re: Figured out how to get Mozilla into git
From: Jon Smirl @ 2006-06-10 18:02 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Rogan Dawes, Martin Langhoff, git
In-Reply-To: <Pine.LNX.4.64.0606101041490.5498@g5.osdl.org>

Here's a random idea, how about a tool that turns a real pack into one
that is segmented and then faults in segments if you do an operation
that needs the old segments? The full pack would always look like it
is there even if it isn't. Something like gitk would be modified not
to fault in the missing segments.

-- 
Jon Smirl
jonsmirl@gmail.com

^ permalink raw reply

* Re: Figured out how to get Mozilla into git
From: Linus Torvalds @ 2006-06-10 17:53 UTC (permalink / raw)
  To: Rogan Dawes; +Cc: Jon Smirl, Martin Langhoff, git
In-Reply-To: <448A847C.20105@dawes.za.net>



On Sat, 10 Jun 2006, Rogan Dawes wrote:
>
> Here's an idea. How about separating trees and commits from the actual blobs
> (e.g. in separate packs)? My reasoning is that the commits and trees should
> only be a small portion of the overall repository size, and should not be that
> expensive to transfer. (Of course, this is only a guess, and needs some
> numbers to back it up.)

The trees in particular are actually a pretty big part of the history. 

More importantly, the blobs compress horribly badly in the absense of 
history - a _lot_ of the compression in git packing comes very much from 
the fact that we do a good job at delta-compression.

So if you get all of the commit/tree history, but none of the blob 
history, you're actually not going to win that much space. As already 
discussed, the _whole_ history packed with git is usually not insanely 
bigger than just the whole unpacked tree (with no history at all).

So you'd think that getting just the top version of the tree would be a 
much bigger space-saving that it actually is. If you _also_ get all the 
tree and commit objects, the space saving is even less.

I actually suspect that the most realistic way to handle this is to use 
the "fetch.c" logic (ie the incremental fetcher used by http), and add 
some mode to the git daemon where you fetch literally one object at a time 
(ie this would be totally _separate_ from the pack-file thing: you'd not 
ask for "git-upload-pack", you'd ask for something like 
"git-serve-objects" instead).

The fetch.c logic really does allow for on-demand object fetching, and is 
thus much more suitable for incomplete repositories.

HOWEVER. The fetch.c logic - by necessity - works on a object-by-object 
level. That means that you'd get no delta compression AT ALL, and I 
suspect that the downside of that would be a factor of ten expansion or 
more, which means that it would really not work that well in practice.

It might be worth testing, though. It would work fine for the "after I 
have the initial cauterized tree, fetch small incremental updates" case. 
The operative word here being "small" and "incremental", because I'm 
pretty sure it really would suck for the case of a big fetch.

But it would be _simple_, which is why it's worth trying out. It also has 
the advantage that it would solve the "I had data corruption on my disk, 
and lost 100 objects, but all the the rest is fine" issue. Again, that's 
not something that the efficient packing protocol handles, exactly because 
it assumes full history, and uses that to do all its optimizations.

		Linus

^ permalink raw reply

* Re: Figured out how to get Mozilla into git
From: Timo Hirvonen @ 2006-06-10 16:15 UTC (permalink / raw)
  To: Jon Smirl; +Cc: junkio, git
In-Reply-To: <9e4733910606100844v5f4765d8o85c9a6f239faed43@mail.gmail.com>

"Jon Smirl" <jonsmirl@gmail.com> wrote:

> On 6/10/06, Junio C Hamano <junkio@cox.net> wrote:
> > "Jon Smirl" <jonsmirl@gmail.com> writes:
> >
> > > Here's a new transport problem. When using git-clone to fetch Martin's
> > > tree it kept failing for me at dreamhost. I had a parallel fetch
> > > running on my local machine which has a much slower net connection. It
> > > finally finished and I am watching the end phase where it prints all
> > > of the 'walk' messages. The git-http-fetch process has jumped up to
> > > 800MB in size after being 2MB during the download. dreamhost has a
> > > 500MB process size limit so that is why my fetches kept failing there.
> >
> > The http-fetch process uses by mmaping the downloaded pack, and
> > if I recall correctly we are talking about 600MB pack, so 500MB
> > limit sounds impossible, perhaps?
> 
> The fetch on my local machine failed too. It left nothing behind, now
> I have to download the 680MB again.

That's sad.  Could git-clone be changed to not remove .git directory if
fetching objects fails (after other files in the .git directory have
been fetched)?  You could then hopefully continue with git-pull.

-- 
http://onion.dynserv.net/~timo/

^ permalink raw reply

* Re: Figured out how to get Mozilla into git
From: Jon Smirl @ 2006-06-10 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git
In-Reply-To: <7vr71xk047.fsf@assigned-by-dhcp.cox.net>

On 6/10/06, Junio C Hamano <junkio@cox.net> wrote:
> "Jon Smirl" <jonsmirl@gmail.com> writes:
>
> > Here's a new transport problem. When using git-clone to fetch Martin's
> > tree it kept failing for me at dreamhost. I had a parallel fetch
> > running on my local machine which has a much slower net connection. It
> > finally finished and I am watching the end phase where it prints all
> > of the 'walk' messages. The git-http-fetch process has jumped up to
> > 800MB in size after being 2MB during the download. dreamhost has a
> > 500MB process size limit so that is why my fetches kept failing there.
>
> The http-fetch process uses by mmaping the downloaded pack, and
> if I recall correctly we are talking about 600MB pack, so 500MB
> limit sounds impossible, perhaps?

The fetch on my local machine failed too. It left nothing behind, now
I have to download the 680MB again.

walk 1f19465388a4ef7aff7527a13f16122a809487d4
walk c3ca840256e3767d08c649f8d2761a1a887351ab
walk 7a74e42699320c02b814b88beadb1ae65009e745
error: Couldn't get
http://mirrors.catalyst.net.nz/pub/mozilla.git//refs/tags/JS%5F1%5F7%5FALPHA%5FBASE
for tags/JS_1_7_ALPHA_BASE
Couldn't resolve host 'mirrors.catalyst.net.nz'
error: Could not interpret tags/JS_1_7_ALPHA_BASE as something to pull
[jonsmirl@jonsmirl mozgit]$ cg update
There is no GIT repository here (.git not found)
[jonsmirl@jonsmirl mozgit]$ ls -a
.  ..
[jonsmirl@jonsmirl mozgit]$




-- 
Jon Smirl
jonsmirl@gmail.com

^ permalink raw reply

* Re: Figured out how to get Mozilla into git
From: Nicolas Pitre @ 2006-06-10 15:14 UTC (permalink / raw)
  To: Rogan Dawes; +Cc: Junio C Hamano, git
In-Reply-To: <448ADB8A.3070506@dawes.za.net>

On Sat, 10 Jun 2006, Rogan Dawes wrote:

> Out of curiosity, do you think that it may be possible for tree objects to
> compress more/better if they are packed together? Or does the existing pack
> compression logic already do the diff against similar tree objects?

Tree objects for the same directories are already packed and deltified 
against each other in a pack.


Nicolas

^ permalink raw reply

* Re: Figured out how to get Mozilla into git
From: Jakub Narebski @ 2006-06-10 14:58 UTC (permalink / raw)
  To: git
In-Reply-To: <448ADB8A.3070506@dawes.za.net>

Rogan Dawes wrote:

> Junio C Hamano wrote:
>> Rogan Dawes <lists@dawes.za.net> writes:
>> 
>>> Here's an idea. How about separating trees and commits from the actual
>>> blobs (e.g. in separate packs)?
>> 
>> If I remember my numbers correctly, trees for any project with a
>> size that matters contribute nonnegligible amount of the total
>> pack weight.  Perhaps 10-25%.
> 
> Out of curiosity, do you think that it may be possible for tree objects 
> to compress more/better if they are packed together? Or does the 
> existing pack compression logic already do the diff against similar tree 
> objects?

The problem with compressing and deltafying trees is with sha1 objects
identifiers, I guess.

-- 
Jakub Narebski
Warsaw, Poland

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox