git mailing list

FromSubjectsort iconDate
Martin Langhoff
[PATCH] cvsserver: Avoid miscounting bytes in Perl v5.8.x
At some point between v5.6 and 5.8 Perl started to assume its input, output and filehandles are UTF-8. This breaks the counting of bytes for the CVS protocol, resulting in the client expecting less data than we actually send, and storing truncated files. Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> --- This has gone unfixed for quite a while. I thought I had seen a patch posted addressing it, but it may have been for something else. In fact, our heavily patched gitweb.cgi has ...
Dec 6, 11:38 pm 2006
Andy Parkins
Topic descriptions
Hello, I was just reading Junio's "what's cooking" summary, and it occurred to me that it would be excellent if git had support for this sort of thing. It seems fairly easy - it wouldn't have to be versioned information. Could we simply make .git/refs files be more flexible in their syntax. ----- <sha1> <anything at all> ----- I don't know where the UI would go; but it would let Junio generate his what's cooking emails with cat .git/refs/*/* Just an idea... Andy --...
Dec 6, 5:53 pm 2006
Junio C Hamano
Re: Topic descriptions
I think the right place to store that <anything at all> information is per-branch configuration item. Perhaps: [branch "ap/clone-origin"] description = we talk about what this thing does and \ what the current status of it is. I am unlikely to use such a thing for the "What's in" message, though. The part that talks about "what the current status is" is much easier to write when I need to talk about "the current"; otherwise I'd be forced to remember to think if I need ...
Dec 6, 6:31 pm 2006
Jakub Narebski
Re: What's cooking in git.git (topics)
Very nice. Less suprises for CVS users (with "update then commit" I think it would be nice to have... but as it is very fresh Looks nice, as an alternative to git-cherry-pick (which sometimes Is having loadavg in gitweb, and not configured in server good idea? It looks and reads better. I usually read only description, as shortlog is not that useful unless you are interested in given topic. At least for me. -- Jakub Narebski Warsaw, Poland ShadeHawk on #git -
Dec 6, 5:51 pm 2006
Junio C Hamano
Re: What's cooking in git.git (topics)
This only makes "update; edit; update; commit" to work. "edit; commit; edit; commit; edit; update; commit" would not work, because you would be faced to resolving the conflicts upon the last update while your working tree is already contaminated with your own changes (it can be done and experienced people have done so, but you are talking about "CVS users" here). We'd be much better off to encourage users to shake "update then Then test it and fix breakage if any please. -
Dec 6, 6:14 pm 2006
Andy Parkins
pushglobs
Hello, The glob support in the fetches has gone down so well that I'm looking into doing the same for pushrefs. The push work is done in C; so there is obviously no globbing support from the shell. I know that git does globbing in other places, so wanted to ask if it's appropriate to use that rather than me write my own hacked up version? The context is this: I'm extending builtin-push.c:add_ref() to catch globbed refs and then recursively expand them. Andy -- Dr Andrew Parkins, M...
Dec 6, 5:40 pm 2006
Mitch Bradley
Seeking git recipe to grab a single file
I want to grab a single file from a remote git repository into the current directory, which is not a git tree. Is there an easy way to do that? I have tried using git-fetch and git-cat-file, without success. Thanks, Mitch Bradley -
Dec 6, 5:22 pm 2006
Alex Riesen
Re: Seeking git recipe to grab a single file
If the remote repo has a gitweb interface than it's simple: wget 'http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plain;h=0451f69353bad4d07de34fd4658f40b805bd467a;f=Kbuild' Otherwise, there is no simple way to do it yet. I would even guess you're the first to ask for it. -
Dec 6, 5:51 pm 2006
Junio C Hamano
What's cooking in git.git (topics)
Here is a list of topics that are cooking; the commits marked with '+' are in 'next', '-' are in 'pu'. Dates are when the topic was last touched [*1*]. ---------------------------------------------------------------- * ap/clone-origin (Wed Dec 6 12:07:23 2006 +0000) + Explicitly add the default "git pull" behaviour to .git/config on clone This makes 'git clone' to mark the local 'master' to explicitly merge with the corresponding remote branch, which would be a sensible default. As di...
Dec 6, 5:19 pm 2006
Johannes Schindelin
Re: What's cooking in git.git (topics)
Hi, This is something I am looking forward to to test. Maybe in "next" for I vote for putting this into "next" for a wider audience. It also would help people to submit patches (it is kind of a hassle to branch "pu", so I Yes, definitely cook it for at least a week; maybe I find the time to The more I see the missing reaction, the less sure I am this is a sensible thing to do. And it would need more safety valves, not just documentation. For example, I am not sure if a push fro...
Dec 6, 7:42 pm 2006
Junio C Hamano
What's in git.git (stable)
* The 'maint' branch has produced a new release 1.4.4.2 * In the 'master' branch: - we now officially favor 'remotes' information to be in $GIT_DIR/config, and 'git clone' records origin in there, not in $GIT_DIR/remotes/origin (thanks to Andy Parkins). - "git send-pack $URL :refs/heads/$branch" can be used to delete a remote branch (so does "git push $URL :$ref" over git native protocols). - built-in shortlog lets you directly say "git shortlog v2.6.18..master", i...
Dec 6, 5:18 pm 2006
Nicolas Pitre
[PATCH] change the unpack limit treshold to a saner value
Let's assume the average object size is x. Given n objects, the needed storage size is n*(x + b), where b is the average wasted block size on disk. If those objects are packed, the needed storage becomes n*x + b so we save on the block overhead. But there is the pack index which is 1024 + n*24 + b. Trying to find the value of n where packed objects become an advantage, we have: n*x + n*b > n*x + n*24 + 2*b + 1024 n*b - 2*b > n*24 + 1024 (n - 2)*b > n*24 + 1024 So g...
Dec 6, 5:08 pm 2006
Nicolas Pitre
[PATCH take 2] change the unpack limit treshold to a saner v...
Currently the treshold is 5000. The likelihood of this value to ever be crossed for a single push is really small making it not really useful. The optimal treshold for a pure space saving on a filesystem with 4kb blocks is 3. However this is likely to create many small packs concentrating a large number of files in a single directory compared to the same objects which are spread over 256 directories when loose. This means we would need 512 objects per pack on average to approximagte the sa...
Dec 7, 12:01 am 2006
Linus Torvalds
Re: [PATCH] change the unpack limit treshold to a saner value
Definitely not. We have a much easier time handling many loose packed objects than many pack-files. For many reasons, but two really obvious ones: - pack-file indexes get read in on startup, and we maintain an explicit list of them. Having lots of pack-files adds overhead that doesn't exist for lots of loose objects. - loose files are spread out over 256 subdirectories to make lookup easier, packfiles are not (and always create an index file too). So in general, as a tri...
Dec 6, 9:08 pm 2006
Nicolas Pitre
Re: [PATCH] change the unpack limit treshold to a saner value
Note that this setting is currently observed for pushes not pulls. On the pull side you currentli need to provide -k for not exploding packs. So the question is what number of objects on average do pushes have? If most pushes are below the treshold this is not going to be really useful. And I think 5000 is definitely way too high. 10 might be too small indeed. 100 is maybe a good default to try out. Nicolas -
Dec 6, 11:24 pm 2006
Linus Torvalds
Re: [PATCH] change the unpack limit treshold to a saner value
It will depend a lot on the project, and "where" in the project you are. For example, for most end developers, the "push" is likely going to be a few commits (say, a days work). Probably on the order of a few tens to maybe a few hundred objects. It's actually hard to create a pack with less than ten objects if you have a few directory levels (a single small commit in the kernel is usually 5-7 objects: commit + 2-3 levels of directory + a couple of blobs). For me, as I pull a big merg...
Dec 6, 11:39 pm 2006
Junio C Hamano
Re: [PATCH] change the unpack limit threshold to a saner value
I see you are optimizing for disk footprint, and this will result in tons of tiny packs left between "repack -a". I have not benched it yet, but the runtime pack handling code was written assuming we have only a handful of big packs; I suspect this change would affect the performance at runtime in quite a bad way. -
Dec 6, 6:24 pm 2006
Nicolas Pitre
Re: [PATCH] change the unpack limit threshold to a saner value
Possibly. Still a treshold of 5000 is way too large IMHO. Nicolas -
Dec 6, 8:19 pm 2006
Marco Costalba
Fast access git-rev-list output: some OS knowledge required
I ask help to the list because my knowledge on this is not enough. Currently qgit uses, socket based, QProcess class to read data from 'git rev-list' when loading the repository at startup. The time it takes to read, without processing, the whole Linux tree with this approach it's almost _double_ of the time it takes 'git rev-list' to write to a file: $git rev-list --header --boundary --parents --topo-order HEAD >> tmp.txt We are talking of about 7s against less then 4s, on my box (war...
Dec 6, 3:24 pm 2006
Shawn Pearce
Re: Fast access git-rev-list output: some OS knowledge requi...
The revision listing machinery is fairly well isolated behind some pretty clean APIs in Git. Why not link qgit against libgit.a and just do the revision listing in process? -- Shawn. -
Dec 6, 3:28 pm 2006
Johannes Schindelin
Re: Fast access git-rev-list output: some OS knowledge requi...
Hi, Because, depending on what you do, the revision machinery is not reentrable. For example, if you filter by filename, the history is rewritten in-memory to simulate a history where just that filename was tracked, and nothing else. These changes are not cleaned up after calling the internal revision machinery. Hth, Dscho -
Dec 6, 7:27 pm 2006
Linus Torvalds
Re: Fast access git-rev-list output: some OS knowledge requi...
Well, it really wouldn't be that hard to add a new library interface to "reset object state". We could fairly trivially either: - walk all objects in the object hashes and clear all the flags. - just clear all objects _and_ the hashes. Yes, it implies a small amount of manual "management", but considering that the reason it needs to be manual is that the functions simply _need_ the state, is that such a big deal? Linus -
Dec 6, 8:47 pm 2006
Marco Costalba
Re: Fast access git-rev-list output: some OS knowledge requi...
Where can I found some documentation (yes I know RTFS, but...) or, better, an example of using the API to read git-rev-list output? if it is possible I also would like to avoid to mess with internal git API's, of course *if it is possible* ;-) Thanks Marco -
Dec 6, 3:34 pm 2006
Shawn Pearce
Re: Fast access git-rev-list output: some OS knowledge requi...
builtin-rev-list.c. :-) I think all you may need is: #include "revision.h" ... struct rev_info revs; init_revisions(&revs, prefix); revs.abbrev = 0; revs.commit_format = CMIT_FMT_UNSPECIFIED; argc = setup_revisions(argc, argv, &revs, NULL); where argv just a char** of the arguments you were going to hand to rev-list on the command line. then get the data back: static void show_commit(struct commit *commit) { const char * hex = sha1_to_hex(commit->object.sha1...
Dec 6, 3:42 pm 2006
Shawn Pearce
Re: Fast access git-rev-list output: some OS knowledge requi...
You'll also need to call: setup_git_directory(); Although now that I think about it the library may not be enough of a library. Some data (e.g. commits) will stay in memory forever once loaded. Pack files won't be released once read; a pack recently made available while the application is running may not get noticed. Perhaps there is some fast IPC API supported by Qt that you could use to run the revision listing outside of the main UI process, to eliminate the bottlenecks you are seein...
Dec 6, 3:51 pm 2006
Marco Costalba
Re: Fast access git-rev-list output: some OS knowledge requi...
Qt it's very fast in reading from files, also git-rev-list is fast in write to a file...the problem is I would not want the file to be saved on disk, but stay cached in the OS memory for the few seconds needed to be written and read back, and then deleted. It's a kind of shared memory at the end. But I don't know how to realize it. Also let git-rev-list to write directly in qgit process address space would be nice, indeed very nice. Marco -
Dec 6, 4:08 pm 2006
Shawn Pearce
Re: Fast access git-rev-list output: some OS knowledge requi...
On a modern Linux (probably your largest target audience) a small file which has a very short lifespan (few seconds) is unlikey to hit the platter. Most filesystems will put the data into buffer cache and delay writing to disk because temporary files are so common on UNIX. And ugly. :-) SysV IPC (shared memory, semaphores) are messy and difficult to get right. mmap against a random file in the filesystem tends to work better on those systems which support it well, provided that the file ...
Dec 6, 4:18 pm 2006
Junio C Hamano
Re: [RFC] Two conceptually distinct commit commands
I am not sure what needs to be commented on at this point, since it is not yet clear to me where you want your proposal to lead us. I do not agree with your "three commands" or "two semantics" characterization of the current way "git commit" works. "git commit" without any optional argument already acts as if a sensible default arguments are given, that is "no funny business with additional paths, commit just what the user has staged already." "git commit" is primarily about committing what ...
Dec 6, 2:31 pm 2006
Carl Worth
Re: [RFC] Two conceptually distinct commit commands
Thanks for the comments you made here---that's the kind of thing I was looking for. As for where I'm trying to lead us, what I really want to do is to help improve the learnability of git. A big part of that is about improving the set of "use-oriented" documentation, (which describes how to achieve tasks, as opposed to what might be termed "technically oriented" documentation which describes how individual tools work). I think too much of the existing documentation falls into the second class. ...
Dec 6, 7:29 pm 2006
Jakub Narebski
Re: [PATCH 2/3] git-fetch: do not use "*" for fetching multi...
I just worry what would happen when someone would write e.g. 3.) The one with shell-like (fnmatch / glob) globbing Pull: refs/heads/*:refs/remotes/origin/* By the way, with globbing we really need some other way than first Pull: line to select remote head to merge on "git pull". For example "Merge:" line / remote.<name>.merge config var. -- Jakub Narebski Warsaw, Poland ShadeHawk on #git -
Dec 6, 2:27 pm 2006
Junio C Hamano
Re: [PATCH 2/3] git-fetch: do not use "*" for fetching multi...
Why? URL: some-where Pull: refs/heads/master:refs/remotes/origin/master Pull: refs/heads/*:refs/remotes/origin/* works just fine. But we should encourage people to use config to define default merge source per-branch. -
Dec 6, 2:39 pm 2006
Terence
Most popular software bundles including Microsoft Office 200...
With the appreciation of your friendship our Group would like to represent a new special offer created for all the customers who prefer to use our services. Needless to say that we're trying to help you with your choices, because we offer a quality software at lowest prices on the web. Make your choice, don't miss a chance. We're always at your service. The following special offer will operate within next 7 days only http://mumik-oem.com Every effort has been made to ensure the accuracy of all information...
Dec 6, 2:04 pm 2006
Jakub Narebski
Re: [PATCH] Explicitly add the default "git pull" behaviour ...
I wouldn't go that far, as it would forbit perfectly good "git fetch" from anywhere in the sources meaning "git fetch origin". -- Jakub Narebski Warsaw, Poland ShadeHawk on #git -
Dec 6, 1:15 pm 2006
Jakub Narebski
Re: [PATCH 2/3] git-fetch: do not use "*" for fetching multi...
'*' in destination part would mean $n / \n (n-th match for *). And you need some way to mark if it is prefix match, or whole path match. Ending prefix match with '/' is one way of doing this... Unless it would be prefix match always, but I think this leads way to confusion. Just a thought. -- Jakub Narebski Warsaw, Poland ShadeHawk on #git -
Dec 6, 12:58 pm 2006
Johannes Schindelin
Re: [PATCH 2/3] git-fetch: do not use "*" for fetching multi...
Hi, Not to talk about portable, and as we saw, dependent on the C compiler (you would have to make git compile with the same C compiler that perl was compiled with). So, please look into other options first. Ciao, Dscho -
Dec 6, 7:21 pm 2006
Jakub Narebski
Re: [PATCH 2/3] git-fetch: do not use "*" for fetching multi...
No, not embedded in C, but embedded in shell script. Use perl -ip instead of sed. -- Jakub Narebski Poland -
Dec 6, 7:38 pm 2006
Michael Loeffler
Re: [PATCH 2/3] git-fetch: do not use "*" for fetching multi...
Am Mittwoch, den 06.12.2006, 17:58 +0100 schrieb Jakub Narebski: I had the same idea after the sed problems with macos/solaris, but embedded perl is really a bit horrible. Then we could just use (.*) and \1..9 and use extended REs. The only problem is this stupid sed thing, only GNU-sed has the -r I would prefer the following ways to do this globfetch stuff: 1.) The original refspec: Pull: refs/heads/master:refs/remotes/origin/master 2.) The one with "prefix match": Pull: refs/heads/:...
Dec 6, 2:16 pm 2006
Junio C Hamano
Re: [PATCH 2/3] git-fetch: do not use "*" for fetching multi...
Please, don't do regex when talking about paths. Uniformly using fnmatch/glob is less confusing. I do not see anything wrong with Andy's refspec glob we already have. Although I agree that the second asterisk in "src/*:dst/*" has a certain "Huh?" factor to UNIX-trained eyes, I think it is quite obvious even to new people what it does. Also, while I agree that (2) is logical and less typing, I would avoid cases where foo and foo/ behave differently when "foo" itself is a directory/tree like th...
Dec 6, 2:37 pm 2006
Clifton Oakes
Most popular software bundles including Microsoft Office 200...
With the appreciation of your friendship our Group would like to represent a new special offer created for all the customers who prefer to use our services. Needless to say that we're trying to help you with your choices, because we offer a quality software at lowest prices on the web. Make your choice, don't miss a chance. We're always at your service. The following special offer will operate within next 7 days only http://tarantullbabe.net Every effort has been made to ensure the accuracy of all informa...
Dec 6, 12:15 pm 2006
Jakub Narebski
Re: git UI nit
Some of that stems from the "pipeline" model / implementation of git commands, where every separate stage spews it's own warning and error messages. -- Jakub Narebski Warsaw, Poland ShadeHawk on #git -
Dec 6, 11:36 am 2006
Han-Wen Nienhuys
Re: git UI nit
because a newbie doesn't know how to resolve that problem. -- Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen -
Dec 6, 12:04 pm 2006
Jakub Narebski
Re: git UI nit
But there are [at least] two ways to resolve this: commit or revert (reset). -- Jakub Narebski Poland -
Dec 6, 12:23 pm 2006
Jakub Narebski
Re: [PATCH] Add builtin merge-file, a minimal replacement fo...
Would it be hard to add "-p / --stdout" options, and "-q / --quiet" option? I understand that non-standard output format options are rather out of question... -- Jakub Narebski Warsaw, Poland ShadeHawk on #git -
Dec 6, 11:30 am 2006
Johannes Schindelin
[PATCH] merge-file: support -p and -q; fix compile warnings
Now merge-file also understands --stdout and --quiet options. While at it, two compile warnings were fixed. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> --- On Wed, 6 Dec 2006, Jakub Narebski wrote: > Johannes Schindelin wrote: > > > merge-file has the same syntax as RCS merge, but supports only > > the "-L" option. > > Would it be hard to add "-p / --stdout" options, and "-q / > --quiet" option? No. But the documenta...
Dec 6, 11:45 am 2006
Johannes Schindelin
[PATCH] Add builtin merge-file, a minimal replacement for RC...
merge-file has the same syntax as RCS merge, but supports only the "-L" option. For good measure, a test is added, which is quite minimal, though. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> --- Is it a good sign that the test makes up for 75% of this patch? builtin-merge-file.c | 72 ++++++++++++++ builtin.h | 1 + git.c | 1 + t/t6023-merge-file.sh | 251 ++++++++++++++++--------------------------------- 4 files changed,...
Dec 6, 11:10 am 2006
Johannes Schindelin
Re: [PATCH] Add builtin merge-file, a minimal replacement fo...
Oops. Here is a corrected patch: Makefile | 1 builtin-merge-file.c | 72 ++++++++++++++++++++++++++++++ builtin.h | 1 git.c | 1 t/t6023-merge-file.sh | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 191 insertions(+), 0 deletions(-) diff --git a/Makefile b/Makefile index cf69242..81cc7c4 100644 --- a/Makefile +++ b/Makefile @@ -275,6 +283,7 @@ BUILTIN_OBJS = \ builtin-ls-tree.o \ builtin-mailinfo.o \ ...
Dec 6, 11:26 am 2006
Han-Wen Nienhuys
git UI nit
When merging changes into a dirty working copy, one may get .. Updating 62a005d..7bbd698 Makefile: needs update README: needs update config.mak.in: needs update configure.ac: needs update fatal: Entry 'Makefile' not uptodate. Cannot merge. .. This is bad error message; "uptodate" suggests that Makefile is too old. The problem is the reverse. The Makefile has been edited and hence it is 'newer'. This message should say Entry 'Makefile' is dirty. Revert or commit changes bef...
Dec 6, 10:22 am 2006
Johannes Schindelin
Re: git UI nit
Hi, Something like this? -- snip -- [PATCH] Replace "needs update" by "dirty; needs commit" This should clarify why a merge was not even started. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> --- read-cache.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/read-cache.c b/read-cache.c index eae4745..0d22de2 100644 --- a/read-cache.c +++ b/read-cache.c @@ -721,7 +721,7 @@ int refresh_cache(unsigned int flags) } if (quiet)...
Dec 6, 10:46 am 2006
Han-Wen Nienhuys
Re: git UI nit
Yes - I'd just mention revert as an option too. -- Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen -
Dec 6, 11:09 am 2006
Johannes Schindelin
Re: git UI nit
Hi, Actually, I like it that short. We had an email on this list, where the poster said he could not merge with Git. It turned out that the merge failed with conflicts, but he did not bother reading through the messages, apparently because they were too many. Ciao, Dscho -
Dec 6, 11:20 am 2006
previous daytodaynext day
December 5, 2006December 6, 2006December 7, 2006