git mailing list

FromSubjectsort iconDate
linux
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
I think I agree with you, but not as strongly. Certainly, having any kind of effective cacheing (heck, just comparing the timestamp of the relevant ref(s) with the If-Modified-Since: header) will help kernel.org enormously. But as soon as there's a push, particularly a release push, that invalidates *all* of the popular pages *and* the thindering herd arrives. The result is that all of the popular "what's new?" summary pages get fetched 15 times in parallel and, because the front end ...
Dec 10, 8:40 pm 2006
J. Bruce Fields
asciidoc, docbook, "book" doctype
I've been fooling around with producing a longer piece of documentation using material from the tutorials, etc., using the docbook backend and "book" doctype. It's not working quite the way I'd expect. For example, it doesn't format the literal blocks correctly, and man page links aren't producing useful clickable links. Should I be going about this some other way? All I really want is automatically generated tables of contents and cross-references. --b. -
Dec 10, 8:20 pm 2006
Jakub Narebski
Re: [ANNOUNCE] CGit v0.1-pre
Miscalculation: it is 5 with yours (6 counting gittracker). -- Jakub Narebski Poland -
Dec 10, 5:29 pm 2006
Jakub Narebski
Re: [ANNOUNCE] CGit v0.1-pre
I have added this to GitWiki: check out http://git.or.cz/gitwiki/InterfacesFrontendsAndTools#cgit Hmmm... git has now 4 web interfaces (5 if counting gittracker, which works but gittracker repository shows empty): gitweb in Perl, git-php in PHP, wit in Python (is it actively developed? where it can be downloaded from?), gitarella in Ruby, now CGit in C... By the way, it is cgit, CGit or CGIt ;-p? -- Jakub Narebski Warsaw, Poland ShadeHawk on #git -
Dec 10, 5:08 pm 2006
Lars Hjemli
[ANNOUNCE] CGit v0.1-pre
CGit is another cgi-app for git. It is written in C (using libgit.a), and implements an internal page cache. A PoC version is available for cloning at git://hjemli.net/pub/git/cgit and it is also (barely) selfhosted at http://hjemli.net/git/ For a quick summary of the cache algorithm, the project README is here: http://hjemli.net/git/cgit/view/?id=5917c37ce30b3f0a374c9fa376955f51f1d7bfbf Enjoy! -- larsh -
Dec 10, 4:42 pm 2006
Linus Torvalds
Re: [ANNOUNCE] CGit v0.1-pre
Your pseudo-algorithm is dubious: name = generate_cache_name(request); top: if (!exists(name)) { if (lock_cache(name)) { generate_cache(request, name); unlock_cache(name); } else { sched_yield(); goto top; } } else if (expired(name)) { if (lock_cache(name)) { generate_cache(request, name); unlock_cache(name); } } print_file(name); You really should have: if (!exists) { if (!lock) delay-and-repeat; /* RETEST ...
Dec 10, 6:04 pm 2006
Johannes Schindelin
Re: [PATCH] remove "[PATCH]" prefix from shortlog output
Hi, Use the source, Luke! If "[PATCH" is there, but "]" is not, then eob will be NULL, and nothing happens. Well, actually it is not completely true: the code searches for "]" in the _complete_ commit message (which _is_ terminated by '\0'). But only if it is found, _and_ it is in the first line, the substring is trimmed away. Hth, Dscho -
Dec 10, 4:35 pm 2006
Jakub Narebski
Re: [PATCH] remove "[PATCH]" prefix from shortlog output
What happens if you have "[PATCH" without closing "]"? Does it work (and doesn't crash)? Does it strip anything? -- Jakub Narebski Warsaw, Poland ShadeHawk on #git -
Dec 10, 4:10 pm 2006
Doug Maxey
[RFC/PATCH] gitk: add current directory to main window title
From fe613c56b0079871e6b862077a9d673ca064cc16 Mon Sep 17 00:00:00 2001 From: Doug Maxey <dwm@bebe.enoyolf.org> Date: Sun, 10 Dec 2006 14:02:50 -0600 Signed-off-by: Doug Maxey <dwm@enoyolf.org> --- Based off gitk#master. It helps me, being greyware challenged, keep track of which gitk is active for a given directory. --- gitk | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/gitk b/gitk index 3dabc69..b8fd6ca 100755 --- a/gitk +++ b/gitk @@ -6293,6 +6293,7 @@ ...
Dec 10, 1:31 pm 2006
Jakub Narebski
Re: Using GIT to store /etc (Or: How to make GIT store a ...
The idea is to not store /etc in git directly, but use import/export scripts, which for example saves permissions and ownership in some file also tracked by git on import, and restores correct permissions on export. That is what I remember from this discussion. This of course means that you would have to write your own porcelain... What about mentioned in other email IsiSetup? -- Jakub Narebski Warsaw, Poland ShadeHawk on #git -
Dec 10, 11:18 am 2006
Jakub Narebski
Re: Using GIT to store /etc (Or: How to make GIT store a ...
Kyle Moffett wrote: > The simplest solution which admittedly breaks the ability of older
Dec 10, 11:10 am 2006
Jakub Narebski
Re: reexporting git repository via git-daemon
It should be "git clone --bare git://git.kernel.org/pub/scm/git/git.git" or "git clone --bare git://git.kernel.org/pub/scm/git/git.git git.git" True, the error messages of git-clone are bit cryptic and doesn't give us much information. Does there exist such repository? Perhaps WORKSFORME $ git --version git version 1.4.4.1 $ git clone --bare git://git.kernel.org/pub/scm/git/git.git remote: Generating pack... remote: Done counting 33587 objects. remote: Deltifying 33587 ...
Dec 10, 10:35 am 2006
Arkadiusz Miskiewicz
Re: reexporting git repository via git-daemon
Now I tracked that down to git-daemon in version 1.4.2.4 not 1.4.4.2. Seems that something was later fixed, so 1.4.4.2 is OK. | -- Arkadiusz Mi
Dec 10, 10:43 am 2006
Han Boetes
curl with ares support
Hi, This is what my libcurl libs looks like: ~% pkg-config --libs libcurl -lcurl -lcares -lidn -lssl -lcrypto -ldl -lz But the git Makefile assumes '-lcurl' will do. Bug identical to: https://trac.xiph.org/ticket/1092 # Han -- _/| VK |\_ // o\ Decision maker, n.: The person in your office who /o \\ || ._) was unable to form a task force before the music (_. || //__\ ...
Dec 10, 10:26 am 2006
Nicolas Vilz
Problems with git-svn authors file
hello, i tried to use git-svn with author-files and got stuck with following error message: Use of uninitialized value in hash element at /usr/bin/git-svn line 2952. Use of uninitialized value in concatenation (.) or string at /usr/bin/git-svn line 2953. Author: not defined in .git/info/svn-authors file 512 at /usr/bin/git-svn line 457 main::fetch_lib() called at /usr/bin/git-svn line 328 main::fetch() called at /usr/bin/git-svn line 187 my svn-authors file looks like ...
Dec 10, 10:26 am 2006
Jakub Narebski
Re: Collection of stgit issues and wishes
I use stgit 0.11 1056:[gitweb/web!git]$ stg help usage: stg help <command> Ah. I'm sorry, I haven't noticed this. It is Hmmm... in stgit 0.11 "stg refresh --sign" once gave me Signed-off-by: The git commands StGit uses to perform operations automatically record changes in branches in reflog. What StGit does not provide is the "reason". You do use git-update-ref? -- Jakub Narebski Poland -
Dec 10, 10:01 am 2006
Jakub Narebski
Re: Collection of stgit issues and wishes
Yes, I want for StGit to provide reasons when updating HEAD. I know that StGit manages it's own versioning of patches not using reflog -- fine. What matters for me is reflog for HEAD after "stg commit; stg clean". -- Jakub Narebski Poland -
Dec 10, 4:02 pm 2006
Catalin Marinas
Re: Collection of stgit issues and wishes
Yes, only for updating HEAD. The refs in refs/patches/<branch>/ are written directly. I initialy wanted to add patch history support using reflogs and added "git-update-ref -m ..." for the patch commits but I found slow the pushing operation a bit. Do you only want to track the reflogs for HEAD? -- Catalin -
Dec 10, 3:26 pm 2006
Catalin Marinas
Re: Collection of stgit issues and wishes
Just curious, do you run the "stg commit; stg clean" commands together and in this order? Neither of them would update the HEAD. The "commit" command simply removes the StGIT metadata for the applied patches since it no longer needs to track them (permanently stored to the repository). It doesn't change HEAD. The "clean" command only affects the HEAD if there are empty applied patches but after a "commit" there won't be any patches (only the unapplied ones which do not affect HEAD). Maybe we ...
Dec 10, 4:24 pm 2006
Jakub Narebski
Re: Collection of stgit issues and wishes
Ooops, I haven't been clear enough. I meant that afer "stg commit; stg clean" I won't have any StGIT metadata, but I'd have git metadata in reflog. I'd like to have info in reflog for each command which changes head; for example "push", "refresh", perhaps "pop", "float", "uncommit". Just so I don't have long sequence of ref changes in reflog without description of said changes after some work with StGIT on branch. BTW. currently I use StGIT to manage a series of commits on ...
Dec 10, 4:37 pm 2006
Catalin Marinas
Re: RFC PATCH: support for default remote in StGIT
Yann started a thread on this but I didn't find the time to look at this properly. He's idea was to store the remote branch information in the StGIT metadata but I'd like to leave this for GIT to deal with. The StGIT UI can probably be modified to display something useful but With the recent changes, StGIT shares the config files with GIT and it has direct access to git settings without the need to use git-repo-config. Just use "config.has_key" and "config.get_option". Maybe a ...
Dec 10, 9:41 am 2006
Kyle Moffett
Re: Using GIT to store /etc (Or: How to make GIT store a ...
The real problem I have with that is you literally have to duplicate all sorts of functionality. I want to run "foo-status" in /etc and get something useful, but if /etc is not a git directory in and of itself then you have to duplicate most of "git-status" anyways. And the same applies to all the other commands. From what I can see of IsiSetup the tools for checking out, merging, modifying, cloning, etc are all much more limited and immature than the ones available through ...
Dec 10, 11:35 am 2006
Kyle Moffett
Re: Using GIT to store /etc (Or: How to make GIT store a ...
Hmm, unfortunately that has problems with security-related race conditions when used directly for /etc. Think about what happens with "/etc/shadow" in that case, for example. (/etc/.git is of course 0700) I'm sure there are others where non-root daemons get unhappy when they get an inotify event and their config files have suddenly become root:root:0600. I also want to be able to "cd /etc && git status" to see what changed after running "apt-get update" or maybe fiddling in ...
Dec 10, 11:10 am 2006
Jakub Narebski
Re: Using GIT to store /etc (Or: How to make GIT store a ...
>>> I actively use git to version, store and distribute an exim mail
Dec 10, 11:26 am 2006
Jakub Narebski
Re: Using GIT to store /etc (Or: How to make GIT store a ...
There is currently no place for ownership and extended attributes in the tree object; and even full POSIX permissions might be challenge because for example currently unused 'is socket' permission bit is used for experimental commit-in-tree submodule support. And given Linus stance that git is "content tracker"... In the loooong thread "VCS comparison table" there was some talk about using git (or any SCM) to manage /etc. Check out: * Message-ID: ...
Dec 10, 8:30 am 2006
Clemens Buchacher
Re: [PATCH] editor: make sure $EDITOR is executed as a command
Hi, Sorry about the missing subject. Make sure $EDITOR is executed as a command. Otherwise, _editor may fail if $EDITOR is set to something like 'editor', which is also a function within cg-Xlib. Signed-off-by: Clemens Buchacher <drizzd@aon.at> --- commit 942341e051fdcbb77a6abfbc58cf08ef8cab388d tree 96e8fd08cdc7c59b0d3d55d7cb5b4302db443aff parent b6a6e87cb3e1368ad0f78c18fdb6c29dde4ae83e author Clemens Buchacher <drizzd@aon.at> Sun, 10 Dec 2006 14:37:37 +0100 committer Clemens Buchacher ...
Dec 10, 7:04 am 2006
Clemens Buchacher
*** SPAM ***
Make sure $EDITOR is executed as a command --- commit 942341e051fdcbb77a6abfbc58cf08ef8cab388d tree 96e8fd08cdc7c59b0d3d55d7cb5b4302db443aff parent b6a6e87cb3e1368ad0f78c18fdb6c29dde4ae83e author Clemens Buchacher <drizzd@aon.at> Sun, 10 Dec 2006 14:37:37 +0100 committer Clemens Buchacher <drizzd@aon.at> Sun, 10 Dec 2006 14:37:37 +0100 cg-Xlib | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/cg-Xlib b/cg-Xlib index c1262bf..9d04eb4 100755 --- a/cg-Xlib +++ ...
Dec 10, 6:57 am 2006
Kyle Moffett Dec 10, 10:46 am 2006
Jeff Garzik
Re: Using GIT to store /etc (Or: How to make GIT store a ...
It's a great idea, something I would like to do, and something I've suggested before. You could dig through the mailing list archives, if you're motivated. I actively use git to version, store and distribute an exim mail configuration across six servers. So far my solution has been a 'fix perms' script, or using the file perm checking capabilities of cfengine. But it would be a lot better if git natively cared about ownership and permissions (presumably via an ...
Dec 10, 7:49 am 2006
Kyle Moffett
Using GIT to store /etc (Or: How to make GIT store all f ...
I've recently become somewhat interested in the idea of using GIT to store the contents of various folders in /etc. However after a bit of playing with this, I discovered that GIT doesn't actually preserve all permission bits since that would cause problems with the more traditional software development model. I'm curious if anyone has done this before; and if so, how they went about handling the permissions and ownership issues. I spent a little time looking over how GIT stores ...
Dec 10, 6:40 am 2006
sbejar
Re: Using GIT to store /etc (Or: How to make GIT store a ...
I have not used it, but you could try: http://www.isisetup.ch/ that uses git as a backend. Santi -
Dec 10, 8:06 am 2006
Linus Torvalds
Re: globs in partial checkout?
Not historically at all. "git checkout" needed exact filenames in older versions. However, since about 1.4.4.1 or so, it now does the same filename expansion as "git add" etc does, which means that you can give it a directory name and it will check out everything under that directory, or you can give it a pattern, and it should glob it. But it sounds like you may have a slightly older version of git (the pathname matching really is fairly recent). Linus -
Dec 10, 1:13 pm 2006
Marco Costalba
Re: [RFC \ WISH] Add -o option to git-rev-list
Becuase it's there where I store the file content. Function parseSingleBuffer(ba) does only the indexing. But the file content is stored in QByteArray objects (little wrappers around a const char* []). So the fread() in the byte array object is the _only_ I consistently have len == 65536 bytes until the last fread() where it's less. See below run against qgit own repository with 'len' printed inside while loop. $ ./qgit Found GNU source-highlight 2.5 len is <65536> len is <65536> len ...
Dec 10, 3:35 pm 2006
Linus Torvalds
Re: [RFC \ WISH] Add -o option to git-rev-list
Right. Because every time you sleep, you sleep for 100 ms. That's why I was saying that you need to add polling to the thing. I don't know what the QT interfaces to asynchronous polling file descriptors are, but as long as you just blindly wait for 100ms whenever you run out of data, things will always suck. Using "fread()" hid this problem, because the thing would block in How about you just compare something simpler: git-rev-list | cat > /dev/null vs git-rev-list > ...
Dec 10, 5:51 pm 2006
Marco Costalba
Re: [RFC \ WISH] Add -o option to git-rev-list
Ok. Perhaps I'm doing something wrong but the following code it's always 10% slower then the temporary file one (4.7s against 4.3s for linux tree) bool DataLoader::start(const QStringList& args, const QString& workDir) { QDir::setCurrent(workDir); _file = popen(args.join(" ").ascii(), "r"); if (!_file) return false; loadTime.start(); guiUpdateTimer.start(10, true); // will call on_timeout() in 10ms return true; } void DataLoader::on_timeout() { if ...
Dec 10, 3:05 pm 2006
Linus Torvalds
Re: [RFC \ WISH] Add -o option to git-rev-list
Why don't you use the pipe and standard read()? Even if you use "popen()" and get a "FILE *" back, you can still do int fd = fileno(file); and use the raw IO capabilities. The thing is, temporary files can actually be faster under Linux just because the Linux page-cache simply kicks ass. But it's not going to be _that_ big of a difference, and you need all that crazy "wait for rev-list to finish" and the "clean up temp-file on errors" etc crap, so there's no way it's a better ...
Dec 10, 11:16 am 2006
Michael S. Tsirkin
Re: globs in partial checkout?
Seems like this was post-1.4.4.1. Just updated to 1.4.4.2 and this works for me now, thanks. -- MST -
Dec 10, 2:07 pm 2006
Linus Torvalds
Re: [RFC \ WISH] Add -o option to git-rev-list
Why do you seem to be doing a "new" on every iteration inside the loop? Also, why do you have that strange FILE_BLOCK_SIZE thing, and in particular the "if (len < FILE_BLOCK_SIZE)" check? One thing that pipes vs files do is the blocking factor. Especially with older kernels, I _guarantee_ you that you'll only ever get 4kB at a time, so because of that "if (len < 64kB) break" thing, the only thing you're doing is to make sure things suck performance-wise, and you won't be reading ...
Dec 10, 3:16 pm 2006
Marco Costalba
Re: [RFC \ WISH] Add -o option to git-rev-list
Two things. - memory use: the next natural step with files is, instead of loading the file content in memory and *keep it there*, we could load one chunk at a time, index the chunk and discard. At the end we keep in memory only indexing info to quickly get to the data when needed, but the big part of data stay on the file. - This is probably my ignorance, but experimenting with popen() I found I could not know *when* git-rev-list ends because both feof() and ferror() give 0 after a fread() ...
Dec 10, 12:51 pm 2006
Marco Costalba
Re: [RFC \ WISH] Add -o option to git-rev-list
Of course is if (canceling) { deleteLater(); return; } Sorry, cut & paste typo ;-) -
Dec 10, 3:09 pm 2006
Marco Costalba
[RFC \ WISH] Add -o option to git-rev-list
I have done some tests about reading git-rev-list output with different IPC facilities: - Native Qt QProcess socket based IPC - pipe based: popen() and fread() - redirecting git-rev-list to a file (under tmpfs) and 'block reading' back the file: read() under Qt QFile class. The file, always in memory, is deleted at the end of loading. I have tested with different block sizes and different CPU speed on linux and git trees. The averaged results on linux tree (about 30MB of data) and ...
Dec 10, 4:38 am 2006
Linus Torvalds
Re: [RFC \ WISH] Add -o option to git-rev-list
Well, that's still just going slower than swapping. The reason loading things into memory is nice is that: - in the common case, you don't need to do anything else. - if the machine is low on memory, it can page things out just about as easily as you could write things to a file anyway. So don't worry too much about low-memory situations. Yes, there are cases where it's better to keep things in files and simply not have a big working set AT ALL, but if you keep something in a ...
Dec 10, 1:08 pm 2006
Michael S. Tsirkin
globs in partial checkout?
I'm trying to checkout some files after doing "clone -n". Should using globs there work? It doesn't: st@mst-lt:~/scm/wireless-dev$ git checkout master 'include/net/ieee80211*.h' error: pathspec 'include/net/ieee80211*.h' did not match any file(s) known to git. Did you forget to 'git add'? mst@mst-lt:~/scm/wireless-dev$ git ls-tree master -- include/net/ | grep iee 100644 blob b174ebb277a96668f058e469b0753503c34f164b include/net/ieee80211.h 100644 blob eb476414fd726701d032e9e517751b9d3f7e38df ...
Dec 10, 1:00 pm 2006
Linus Torvalds
Re: [RFC \ WISH] Add -o option to git-rev-list
That's because fread() will block until it gets all data. Did you actually ever try this with a uncached tree and did you compare what you got with a plain "read()". On older kernels, I guarantee that you get 4kB at a time for reads, even for a blocking pipe. Because we have bigger pipe buffers these days, it _may_ return 64kB at a time every time, but only if the writer is much faster than the reader. Based on the fact that you say that "read()" was ten times slower than ...
Dec 10, 3:53 pm 2006
Linus Torvalds
Re: [RFC \ WISH] Add -o option to git-rev-list
Btw, I should obviously clarify that. You should _always_ worry about low-memory situations, but the only real issue is really "working set size", not "data in files or in memory". If the file representation is very dense (like the git pack-files are, for example), then it may well make sense to keep the data in a file, just because it's smaller there than if you keep it in expanded form in memory. Also, it's nice to keep stuff in the filesystem rather than in process VM memory, ...
Dec 10, 1:19 pm 2006
Marco Costalba
Re: [RFC \ WISH] Add -o option to git-rev-list
Yes it's right. Thanks! But it's still slow. Almost one second (985ms) to read the little qgit repo: $ ./qgit HEAD Found GNU source-highlight 2.5 count is <-1> count is <60169> count is <-1> count is <60505> count is <-1> count is <61462> count is <-1> count is <61911> count is <-1> count is <61392> count is <-1> count is <61880> count is <-1> count is <62009> count is <-1> count is <62549> count is <-1> count is <21354> count is <0> $ As a compare the temporary file ...
Dec 10, 5:15 pm 2006
Alex Riesen
Re: [RFC \ WISH] Add -o option to git-rev-list
Well, it is usually possible to redirect stdout directly into a file (see dup2). "Usually", unless you want windows which as always has it's own stupid way of doing simple things. Nevertheless, it's Sadly, you're right. Almost every command-line program got the option. It still is the fastest you can get. -
Dec 10, 7:54 am 2006
Jakub Narebski
Re: Collection of stgit issues and wishes
And as far as I can see it doe not use git credentials (user.name and And yet another one: better support for reflog, namely giving the "reason" i.e. the reflog message (like "stg push: <subject>", "stg refresh: <subject>", "stg pop: <subject>", "stg commit" etc.), like git-rebase, git-commit --amend and git-am (for example) does. P.S. The Vendor: field in stgit RPM has incorrectly Catalin Marinas <catalin.marinas@gmail.org> instead of Catalin Marinas ...
Dec 10, 4:06 am 2006
Jakub Narebski
Re: Collection of stgit issues and wishes
And another one: git uses VISUAL, then EDITOR, while stgit uses EDITOR only, so when I prepare VISUAL for git (I use emacsclient), stgit still uses EDITOR. -- Jakub Narebski Warsaw, Poland ShadeHawk on #git -
Dec 10, 1:55 am 2006
Johannes Schindelin
Re: [PATCH 1/3] diff_tree_sha1(): avoid rereading trees ...
Hi, Okay, after thinking about it, I agree. merge-recursive is really the only user for such a diff. So, I do not think EMPTY_TREE would be useful. Ciao, Dscho -
Dec 10, 3:49 pm 2006
Nicolas Pitre
Re: [PATCH] remove "[PATCH]" prefix from shortlog output
Hmmm well, right. And of course I failed to notice that code was there. I think I was corrupted by the dark side and failed to properly "use the Confirmed. Nicolas -
Dec 10, 8:17 pm 2006
Junio C Hamano
Re: [PATCH] remove "[PATCH]" prefix from shortlog output
The problem is that you forgot that the lines are indented when acting as a filter. How about this? It also contains the extra whitespace removal from the author name. diff --git a/builtin-shortlog.c b/builtin-shortlog.c index 7a2ddfe..3fc43dd 100644 --- a/builtin-shortlog.c +++ b/builtin-shortlog.c @@ -188,18 +188,25 @@ static void read_from_stdin(struct path_list *list) bob = buffer + strlen(buffer); else { offset = 8; - if (isspace(bob[-1])) + while (buffer + ...
Dec 10, 4:32 pm 2006
Johannes Schindelin
Re: [PATCH] remove "[PATCH]" prefix from shortlog output
Hi, Of course! And your patch looks correct to me. Ciao, Dscho -
Dec 10, 4:41 pm 2006
Johannes Schindelin
Re: [PATCH] remove "[PATCH]" prefix from shortlog output
Hi, From the current builtin-shortlog.c:128ff: if (!strncmp(oneline, "[PATCH", 6)) { char *eob = strchr(oneline, ']'); if (eob) { while (isspace(eob[1]) && eob[1] != '\n') eob++; if (eob - oneline < onelinelen) { onelinelen -= eob - oneline; oneline = eob; } } ...
Dec 10, 3:40 pm 2006
Robin Rosenberg Dec 10, 8:39 am 2006
Robin Rosenberg Dec 10, 4:48 pm 2006
Robin Rosenberg
[PATCH] Make cvsexportcommit work with filenames with sp ...
From: Robin Rosenberg <robin.rosenberg@dewire.com> This patch uses git-apply to do the patching which simplifies the code a lot and also uses one pass to git-diff. git-apply gives information on added, removed files as well as which files are binary. Removed the test for checking for matching binary files when deleting them since git-apply happily deletes the file. This is matter of taste since we allow some fuzz for text patches also. Error handling was cleaned up, but not much ...
Dec 10, 4:30 pm 2006
Junio C Hamano
Re: [PATCH] Make cvsexportcommit work with filenames wit ...
Maybe I am missing something. It tells you about added or removed files (either binary or non-binary). I'd prepare a pair of practice patch files. "forward" has creation, "reverse" has addition. $ git diff-tree -p --binary fe142b3a >forward.patch $ git diff-tree -R -p --binary fe142b3a >reverse.patch $ git apply --summary --numstat forward.patch 50 20 git-cvsexportcommit.perl 145 0 t/t9200-git-cvsexportcommit.sh - - t/test9200a.png - - ...
Dec 10, 2:27 pm 2006
Robin Rosenberg
[PATCH] Make cvsexportcommit work with filenames with sp ...
From: Robin Rosenberg <robin.rosenberg@dewire.com> This patch uses git-apply to do the patching which simplifies the code a lot. Removed the test for checking for matching binary files when deleting them since git-apply happily deletes the file. This is matter of taste since we allow some fuzz for text patches also. Error handling was cleaned up, but not much tested. Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> --- Updated patch using --numstat to figure which files are ...
Dec 10, 8:45 am 2006
Alex Riesen
Re: Easy shell question: how to make a script killing al ...
Oh, I see now ("Fast access git-rev-list output..."). BTW, I just cannot reproduce that at all (on Linux): time { git rev-list --all > /tmp/ggg; cat /tmp/ggg >/dev/null; } tends to be somewhat slower than time git rev-list --all | cat >/dev/null Dunno. It's hard to assess on "small" repos, like kernel. They feel almost equally fast (maybe because qgit checks working directory too). popen(3) usually uses pipe(2). It's also awkward with regard to shell metacharacters and ...
Dec 10, 7:25 am 2006
Junio C Hamano
Re: [PATCH] shortlog: fix segfault on empty authorname
As far as I know, commit-tree removes the extra space if exists, so your fix would be fine in practice. People could write crappy replacements of plumbing, and we may end up with names with trailing whitespaces, but with your fix at least that would not make us crash, and it may even be considered a feature -- it would serve as a coalmine canary to detect such a broken alternative program that creates bogus commit objects. We might want to tighten fsck-objects to warn about them, though. ...
Dec 9, 11:01 pm 2006
Johannes Schindelin
Re: [PATCH] shortlog: fix segfault on empty authorname
Hi, This is exactly the kind of assumption which led to the bug to begin with. Ciao, Dscho -
Dec 10, 3:43 pm 2006
Catalin Marinas
Re: Collection of stgit issues and wishes
Since this list gets changed pretty often, I would rather add TODO Bugs wiki pages on http://wiki.procode.org/cgi-bin/wiki.cgi/StGIT (maybe I should create a page on one of the open-source hosting sites and get some bug-tracking support). I keep the TODO file mainly for what I plan to implement and, while I agree with many of the issues you point below, I don't guarantee I have time to fix/implement. From your list below, I removed those which I don't have any comments That's a feature in ...
Dec 10, 9:25 am 2006
Arkadiusz Miskiewicz
Re: reexporting git repository via git-daemon
Tested - result is the same, git-damon strace: [pid 6686] write(1, "00408419a453dc088b25b63ab1746d3d7e679caf686d refs/tags/v1.4.1.1\n", 64) = 64 [pid 6686] write(2, "fatal: ", 7) = 7 [pid 6686] write(2, "corrupted pack file ./objects/pack/pack-bc830a5d1c2efa3b727ef9af8faba13c3e719395.pack", 85) = 85 Options handling in git* is a nightmare. It accepts non-existant options. You -- Arkadiusz Mi
Dec 10, 10:28 am 2006
Robin Rosenberg
Re: reexporting git repository via git-daemon
You proably ment git clone --bare git://git.kernel.org/pub/scm/git/git.git Maybe git shouldn't accept useless (in this case) options. -- robin -
Dec 10, 10:22 am 2006
Junio C Hamano
Re: reexporting git repository via git-daemon
I do. I wanted to see if it reproduced but it didn't for me. -
Dec 10, 2:39 pm 2006
Arkadiusz Miskiewicz
Re: reexporting git repository via git-daemon
after: $ git repack -a -d Generating pack... Done counting 33587 objects. Deltifying 33587 objects. 100% (33587/33587) done Writing 33587 objects. 100% (33587/33587) done Total 33587, written 33587 (delta 23205), reused 33587 (delta 23205) Pack pack-bc830a5d1c2efa3b727ef9af8faba13c3e719395 created. the problem disapears and I can safely reexport git repository. Does anyone care about this bug in git? -- Arkadiusz Mi
Dec 10, 9:42 am 2006
Alan Chandler
Re: [PATCH] Documentation/git-commit: rewrite to make it ...
The "but" in this sentence doesn't seem right to me, I would either use "although", or slightly better (IMHO) make it two sentences Tell the command to automatically stage files that have been modified and deleted. Note that files that you have not told git about are not included with this option. -- Alan Chandler http://www.chandlerfamily.org.uk -
Dec 10, 2:17 am 2006
Junio C Hamano
Re: [PATCH] Documentation/git-commit: rewrite to make it ...
Let's keep plumbing documentation technical reference material, but allow more newbie friendliness in Porcelain-ish documentation. -
Dec 10, 4:05 pm 2006
Alan Chandler
Re: Documentation/git-commit.txt
regardless, I think "it" should become "them" ... it is tracking and commit them automatically. -- Alan Chandler http://www.chandlerfamily.org.uk -
Dec 10, 2:23 am 2006
Nicolas Pitre
Re: [PATCH] Documentation/git-commit: rewrite to make it ...
I disagree. Clarity should be the first goal. And the fact that even modified files have to be specified is something worth enphasizing, especially since this is not something other systems do. Nicolas -
Dec 10, 3:07 pm 2006
J. Bruce Fields
Re: [PATCH] Documentation/git-commit: rewrite to make it ...
OK, OK. Shortest I can manage then is: by using gitlink:git-add[1] to add new or modified files to the next commit. This adds a file's current contents only; run gitlink:git-add[1] again to include any subsequent changes. which may not be any improvement. --b. -
Dec 10, 3:41 pm 2006
J. Bruce Fields
Re: [PATCH] Documentation/git-commit: rewrite to make it ...
Or maybe: "by using gitlink:git-add[1] to add new content (of either new or newly modified files) to the next commit." Man pages are reference documentation, so I figure it's OK to sacrifice a little newbie-friendliness for accuracy and concision. I dunno, I think basically the right content is there and Junio should just commit it (after the git-rm change?), and then allow the rest of us nitpickers to submit patches against the result to our heart's content.... --b. -
Dec 10, 2:00 pm 2006
Jeff Garzik
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
If gitweb produced cache-friendly headers, squid could definitely serve as an HTTP front-end ("HTTP accelerator" mode in squid talk). In fact, given kernel.org's slave1/slave2<->master setup, that's a pretty natural fit for caching files and/or cache-aware CGI output. You could even replace rsync to the slaves, if squid was serving as the front-end accelerator running on the slaves, communicating to the master. squid is smart enough to hold off a thundering herd, and only pulls single ...
Dec 10, 3:14 pm 2006
Jeff Garzik
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
The CGI spec does not at all guarantee that the CGI environment will contain all the HTTP headers sent by the client. That was the point of the environment dump script -- you can see exactly which headers are, and are not, passed through to CGI. CGI only /guarantees/ a bare minimum (things like QUERY_STRING, PATH_INFO, etc.) It's not meant to output the sample file. It outputs the server metadata sent to the CGI script (the environment variables). The sample Certainly. That ...
Dec 10, 3:05 pm 2006
Jeff Garzik
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
It's impossible, Apache doesn't supply e-tag info to CGI programs. (it does supply HTTP_CACHE_CONTROL though apparently) You could probably do it via mod_perl. Jeff -
Dec 10, 5:41 am 2006
Jeff Garzik
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
squid seems to work well as an HTTP accelerator (reverse proxy). Apache's mem|disk cache stuff fails miserably. Unfortunately squid development seems to have slowed in recent years. Jeff -
Dec 10, 3:08 pm 2006
rda
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
In the case of Perl scripts, it's not really the fork/exec overhead, but the Perl startup overhead that you want to try to optimize. But given your later statement (lots of spare cpu), this ends up just being a bit of a latency hit. In general, I think mod_perl has a much bigger impact when you have a database to connect to at startup. -
Dec 10, 2:43 am 2006
Jakub Narebski
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
By ETag info you mean access to HTTP headers sent by browser If-Modified-Since:, If-Match:, If-None-Match: do you? So the cache verification should be wrapped in if ($ENV{MOD_PERL}) ? -- Jakub Narebski Poland -
Dec 10, 6:02 am 2006
H. Peter Anvin
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
I/O - nonexistent; that stuff will be in memory. CPU - we have more CPU than you can shake a stick at, and it's 95+% idle. *NOT AN ISSUE*. -hpa -
Dec 10, 12:05 am 2006
Jakub Narebski
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
>>> It's impossible, Apache doesn't supply e-tag info to CGI programs.
Dec 10, 12:11 pm 2006
Jakub Narebski
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
Well, the idea (perhaps stupid idea: I don't know how caching engines / reverse proxy works) was that there would be caching engine / reverse proxy in the front (Squid for example) would cache results and serve it to rampaging hordes. But this caching engine has to ask gitweb if the cache is valid using "If-Modified-Since:" and "If-None-Match:" headers. What about the other idea, the one with raising expires to infinity for immutable pages like "commit" view for commit given by SHA-1? Even ...
Dec 10, 1:27 pm 2006
H. Peter Anvin
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
If that was the only time that happened, it would be a non-issue, since that only happens once every 96 hours. However, the problem is that we now have lots of large datasets that blow out the caches on a much more frequent basis. -hpa -
Dec 10, 2:01 pm 2006
Martin Langhoff
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
It is up to the script (CGI or via mod_perl) to set the status to 304 and finish execution. Just setting the status to 304 does not forcefully end execution as you may want to cleanup, log, etc. cheers, martin -
Dec 10, 7:16 pm 2006
Jakub Narebski
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
I have checked that at least Apache 2.0.54 passes HTTP_IF_MODIFIED_SINCE First, it is better to use $projects_list which is projects index file in the format: <project path> SPC <project owner> where <project path> is relative to $projectroot and is URI encoded; well at least SPC has to be URI (percent) encoded. <project owner> is owner of given project, and is also URI encoded (one would usually use '+' in the place of SPC here). Gitweb now can generate projects list in above format, ...
Dec 10, 3:59 pm 2006
Jeff Garzik
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
You can use this attached shell script as a CGI script, to see precisely what information Apache gives you. You can even experiment with passing back headers other than Content-type (such as E-tag), to see what sort of results are produced. The script currently passes back both E-Tag and Last-Modified of a sample file; modify or delete those lines to suit Sorry, I was /assuming/ mod_perl would make this available. The HTTP header info is available to all Apache modules, but I confess ...
Dec 10, 6:45 am 2006
Martin Langhoff
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
For a high-traffic setup like kernel.org, you can setup a local reverse proxy -- it's a pretty standard practice. That allows you to control a well-behaved and locally tuned caching engine just by emitting good headers. It beats writing and maintaining an internal caching mechanism for each CGI script out there by a long mile. It means there'll be no further tunables or complexity for administrators of other gitweb installs. cheers, martin -
Dec 10, 3:01 pm 2006
Jakub Narebski
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
Sometimes it is easier to use ETags, sometimes it is easier to use Last-Modified:. Usually you can check ETag earlier (after calling git-rev-list) than Last-Modified (after parsing first commit). But some pages doesn't have natural ETag... Besides, because ETag is HTTP/1.1 we should provide and validate both. P.S. Any hints to how to do this with CGI Perl module? -- Jakub Narebski Poland -
Dec 10, 3:09 am 2006
Linus Torvalds
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
Guys, you're missing something fairly fundamnetal. It helps almost _nothing_ to support client-side caching with all these fancy "If-Modified-Since:" etc crap. That's not the _problem_. It's usually not one client asking for the gitweb pages: the load comes from just lots of people independently asking for it. So client-side caching may help a tiny tiny bit, but it's not actually fixing the fundamental problem at all. So forget about "If-Modified-Since:" etc. It may help in ...
Dec 10, 12:50 pm 2006
Linus Torvalds
Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
Sure, if the proxies actually do the rigth thing (which they may or may I agree, but as mentioned, I think the _real_ problem tends to be the pages that don't act that way (ie summary pages, both at the individual project level and the top "all projects" level). Linus -
Dec 10, 1:30 pm 2006
Sasha Khapyorsky
Re: git-svnimport breakage as of git-1.4.4
Thanks for the link. but I cannot access - this requires username/password authentication. Sasha -
Dec 10, 4:47 am 2006
Junio C Hamano
Re: [PATCH 2/3] merge-recursive: make empty tree a known ...
That is fine by me. We would benefit from an empty blob and an empty tree. -
Dec 10, 2:21 pm 2006
Johannes Schindelin
Re: [PATCH 2/3] merge-recursive: make empty tree a known ...
Hi, Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de> Ciao, Dscho -
Dec 10, 4:16 pm 2006
Linus Torvalds
Re: [PATCH 2/3] merge-recursive: make empty tree a known ...
merge-recursive and "diff against root" Linus -
Dec 10, 3:54 pm 2006
Linus Torvalds
Re: [PATCH 2/3] merge-recursive: make empty tree a known ...
I think you should do this more generically. If we create this kind of "default fake object" that we know about whether the object _really_ exists or not (and I agree it makes sense for the empty tree), we should probably use it for "diff_root_tree_sha1()" too, rather than the special case we have now. In other words, right now we have that very special "diff_root_tree_sha1()" function, but if you create a generic fake "empty tree" SHA1 that git knows about implicitly, we could ...
Dec 10, 11:37 am 2006
Junio C Hamano
Re: [PATCH 2/3] merge-recursive: make empty tree a known ...
I think this might be fragile in the presense of older implementation of git. A new git may operate fine without having "well known" objects in the repository, and would happily write result that points at them; an older git would find the resulting repository corrupt. We somehow need to force "well known" objects to be instantiated in the object database when something else points at them. I am not absolutely sure if keeping has_sha1_file() unaware of this magic is enough. -- >8 ...
Dec 10, 3:28 pm 2006
Johannes Schindelin
Re: [PATCH 3/3] add test case for recursive merge
Hi, Not at all. It seems that one merge is conflicting on "a1", and not storing _anything_ in the resulting (unclean) tree. So, there is no stage 1. However, I also saw that something is left in stage 1 on the box where the problem arises. Tomorrow. Ciao, Dscho -
Dec 10, 3:51 pm 2006
Linus Torvalds
Re: [PATCH 2/3] merge-recursive: make empty tree a known ...
I was wondering if we ever had any special case where we wanted the empty blob, and couldn't come up with any. Unlike the "tree diff" case, a "blob diff" will not actually do a "real diff" with a non-existing object, it special-cases it (and, for performance reasons, I think it really should). And all the blob-diff routines generally want to be able to take explicit data anyway, not just diffing two SHA1's (since we often don't have a SHA1 anyway - the working tree case). So while ...
Dec 10, 2:31 pm 2006
Junio C Hamano
Re: [PATCH 2/3] merge-recursive: make empty tree a known ...
After saying that I was thinking about the same. Empty blob is not all that useful (and let's not bring up the "empty commit" Two? I sent out a patch with comment about an issue I worry about. I do not think the empty-tree case matters in practice because we do not allow an empty tree to be committed, but if we add empty blob to the set of "well known objects", the backward compatibility issue becomes real. -
Dec 10, 3:33 pm 2006
Jakub Narebski
[PATCH 0/3] gitweb: Better symbolic link support in "tre ...
Junio C Hamano wrote in I not necessarily agree; I think that symbolic links are sufficnetly rare that a bit more time spent to make the view better for end user (link only if target exists) is worth it. But... Here follows the implementation of this idea: first to read link target and show it in "tree" view _without_ hyperlink, then introduction of generic "object" view which does the verification and redirect to correct view accorting to the type of object, and last show link target ...
Dec 10, 5:25 am 2006
Jakub Narebski
[PATCH 1/3] gitweb: Show target of symbolic link in "tre ...
In "tree" view (git_print_tree_entry subroutine), for entries which are symbolic links, add " -> link_target" after file name (a la "ls -l"). Link target is _not_ hyperlinked. While at it, correct whitespaces (tabs are for aling, spaces are for indent) in modified git_print_tree_entry subroutine. Signed-off-by: Jakub Narebski <jnareb@gmail.com> --- That implements the first part. gitweb/gitweb.perl | 42 ++++++++++++++++++++++++++++++++++-------- 1 files changed, 34 insertions(+), ...
Dec 10, 5:25 am 2006
Junio C Hamano
Re: [PATCH/RFC 4/3] gitweb: SHA-1 in commit log message ...
I am certainly in favor of the approach. Will look at the code later. Thanks. -
Dec 10, 2:29 pm 2006
Jakub Narebski
[PATCH 2/3] gitweb: Add generic git_object subroutine to ...
Add generic "object" view implemented in git_object subroutine, which is used to display object of any type; to be more exact it redirects to the view of correct type: "blob", "tree", "commit" or "tag". To identify object you have to provide either hash (identifier of an object), or (in the case of tree and blob objects) hash of commit object (hash_base) and path (file_name). Signed-off-by: Jakub Narebski <jnareb@gmail.com> --- First version had checking if $hash and $hash_base are explicit ...
Dec 10, 5:25 am 2006
Jakub Narebski
[PATCH 0/3] gitweb: Better symbolic link support in "tre ...
Junio C Hamano wrote in I not necessarily agree; I think that symbolic links are sufficnetly rare that a bit more time spent to make the view better for end user (link only if target exists) is worth it. But... Here follows the implementation of this idea: first to read link target and show it in "tree" view _without_ hyperlink, then introduction of generic "object" view which does the verification and redirect to correct view accorting to the type of object, and last show link target ...
Dec 10, 5:25 am 2006
Jakub Narebski
[PATCH/RFC 4/3] gitweb: SHA-1 in commit log message link ...
Instead of checking if explicit SHA-1 in commit log message is sha1 of commit and making link to "commit" view, make [fragment of] explicit SHA-1 in commit log message link to "object" view. While at it allow to hyperlink also shortened SHA-1, from 8 characters up to full SHA-1, instead of requiring full 40 characters of SHA-1. This makes the following changes: * SHA-1 of objects which no longer exists, for example in commit cherry-picked from no longer existing temporary branch, or ...
Dec 10, 5:25 am 2006
Jakub Narebski
[PATCH 3/3] gitweb: Hyperlink target of symbolic link in ...
Make symbolic link target in "tree" view into hyperlink to generic "object" view (as we don't know if the link target is file (blob) or directory (tree), and if it exist at all). Target of link is made into hyperlink when: * hash_base is provided (otherwise we cannot find hash of link target) * link is relative * in no place link goes out of root tree (top dir) Full path of symlink target from the root dir is provided in the title attribute of hyperlink. Currently symbolic link ...
Dec 10, 5:25 am 2006
Torgil Svensson
Re: [RFC] Submodules in GIT
What if we use linus "module" file concept and allow the link objects to track subtrees? An object may look like this: commit: <SHA1> link: <SHA1> /path/to/remote/tree/or/blob Tracking upstream library: -------------------------- clone as usual Inhouse libraries/applications: ------------------------------- To satisfy versioning of build-dependencies - make links of type "external/lib1_header.h" -> "<commit>/headers/lib1_header.h" (blob) "external/lib1_interface" -> "<commit>/api" ...
Dec 10, 4:47 am 2006
previous daytodaynext day
December 9, 2006December 10, 2006December 9, 2006