git mailing list

FromSubjectsort iconDate
Dana How
[RFD/PATCH] Implement pack.compression and pack-objects --co...
Git's object store and packing are optimized for * Expensive repo to repo bandwidth; and * Small-ish files This justifies extensive use of compression. In a multi-developer *office* with inter-repository transfers occurring over a 100Mb+ LAN, there is less reason to compress files and slow down response times. Response times suffer even more when large files are involved. However, *off-line* pack compression may still be desirable to reduce storage space. Consequently, for such a usage pa...
May 1, 11:18 pm 2007
Frank Lichtenheld
[PATCH] cvsserver: Handle re-added files correctly
We can't unconditionally assign revision 1.1 to newly added files. In case the file did exist in the past and was deleted we need to honor the old revision number. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> --- git-cvsserver.perl | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Found due to working on the test cases. diff --git a/git-cvsserver.perl b/git-cvsserver.perl index 087e3ab..3e7bf5b 100755 --- a/git-cvsserver.perl +++ b/git-cvsserver.perl @@ -2519,...
May 1, 8:43 pm 2007
Dana How
[PATCH 5/5] git-repack --max-pack-size: add option parsing t...
Add --max-pack-size parsing and usage messages. Upgrade git-repack.sh to handle multiple packfile names. Signed-off-by: Dana L. How <danahow@gmail.com> --- builtin-pack-objects.c | 9 ++++++++- git-repack.sh | 12 +++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index a7b19c2..69fec34 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -15,7 +15,7 @@ #include "progress.h" s...
May 1, 8:08 pm 2007
Dana How
[PATCH 4/5] git-repack --max-pack-size: split packs as asked...
Rewrite write_pack_file() to break to a new packfile whenever write_object/write_one request it, and correct the header's object count in the previous packfile. Change write_index_file() to write an index for just the objects in the most recent packfile. Signed-off-by: Dana L. How <danahow@gmail.com> --- builtin-pack-objects.c | 165 +++++++++++++++++++++++++++--------------------- 1 files changed, 93 insertions(+), 72 deletions(-) diff --git a/builtin-pack-objects.c b/builtin-pack-o...
May 1, 8:07 pm 2007
Dana How
[PATCH 3/5] git-repack --max-pack-size: write_{object,one}()...
With --max-pack-size, generate the appropriate write limit for each object and check against it before each group of writes. Update delta usability rules to handle base being in a previously- written pack. Inline sha1write_compress() so we know the exact size of the written data when it needs to be compressed. Detect and return write "failure". Signed-off-by: Dana L. How <danahow@gmail.com> --- builtin-pack-objects.c | 134 ++++++++++++++++++++++++++++++++++++++--------- 1 files chang...
May 1, 8:06 pm 2007
Dana How
[PATCH 2/5] git-repack --max-pack-size: new file statics and...
Add "pack_size_limit", the limit specified by --max-pack-size, "written_list", the list of objects written to the current pack, and "nr_written", the number of objects in written_list. Put "base_name" at file scope again and add forward declarations. Move write_index_file() call from cnd_pack_objects() to write_pack_file() since only the latter will know how many times to call write_index_file(). Signed-off-by: Dana L. How <danahow@gmail.com> --- builtin-pack-objects.c | 68 +++++++++++...
May 1, 8:05 pm 2007
Dana How
[PATCH 1/5] git-repack --max-pack-size: alter sha1close() 3r...
update=0 suppressed writing the final SHA-1 but was not used. Now final=0 suppresses SHA-1 finalization, SHA-1 writing, and closing -- in other words, only flush the buffer. Signed-off-by: Dana L. How <danahow@gmail.com> --- csum-file.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/csum-file.c b/csum-file.c index 7c806ad..9913cb5 100644 --- a/csum-file.c +++ b/csum-file.c @@ -29,18 +29,20 @@ static void sha1flush(struct sha1file *f, unsigned int coun...
May 1, 8:03 pm 2007
Dana How
[PATCH 0/5] git-repack --max-pack-size
The three most common ways of making large packfiles are git-fast-import, the first git-repack, or git-repack -a. The first already supports a "--max-pack-size=N" option, which limits the resulting packfiles to N megabytes. This patchset adds the same option, with the same behavior, to git-repack to handle the other two cases. This iteration fixes the most recent issues, including operation without implying -f/--no-reuse-delta. -
May 1, 8:02 pm 2007
Jakub Narebski
Git benchmarks at OpenOffice.org wiki
OpenOffice.org is looking for a new SCM (Software Configuration Management) tool, or at least was on Friday, 19 Jan 2007; see: http://blogs.sun.com/GullFOSS/entry/openoffice_org_scm One of the SCMs considered is Git. One of others is Subversion. There is a functional git tree with the entire OOo history for testing purposes that can be found at: http://go-oo.org/git. What I am concerned about is some of git benchmark results at Git page on OpenOffice.org wiki: [ message continues ]
" title="http://wiki.services.openoffic...">http://wiki.services.openoffic...
May 1, 5:46 pm 2007
Junio C Hamano
Re: Git benchmarks at OpenOffice.org wiki
Yes, depending on where you cut off and how reasonable the Partial checkouts, perhaps, "theirs", NO. Consider that you are working on the tip with partial checkout. Somebody has a bugfix that is applicable to all of ancient, old, maintenance and current codebase. Naturally you would want the bugfix to be applied to ancient, merge it to old, and then maintenance and then current (the last one is what you are working on). What happens if you actually pull ancient when you are partially Thi...
May 1, 6:27 pm 2007
Johannes Schindelin
[PATCH] Teach import-tars about GNU tar's @LongLink extension.
This extension allows GNU tar to process file names in excess of the 100 characters defined by the original tar standard. It does this by faking a file, named '././@LongLink' containing the true file name, and then adding the file with a truncated name. The idea is that tar without this extension will write out a file with the long file name, and write the contents into a file with truncated name. Unfortunately, GNU tar does a lousy job at times. When truncating results in a _directory_ nam...
May 1, 5:42 pm 2007
Dana How
[PATCH] Create pack-write.c for common pack writing code
Include a generalized fixup_header_footer() in this new file. Needed by git-repack --max-pack-size feature in a later patchset. Signed-off-by: Dana L. How <danahow@gmail.com> --- Makefile | 4 ++-- fast-import.c | 39 ++------------------------------------- pack-write.c | 38 ++++++++++++++++++++++++++++++++++++++ pack.h | 3 +++ 4 files changed, 45 insertions(+), 39 deletions(-) diff --git a/Makefile b/Makefile index 2fea115..e0a1308 100644 --- a/Makefile +++...
May 1, 2:26 pm 2007
Guilhem Bonnefille
git-svn and local only topic branch
Hi, I'm using Git as a SVN frontend (via git-svn). Recently, I made a topic branch, I did some job on it and wish to "upload" my work (on the SVN). But, I do not want "pushing" all commits, I only want to create a single commit on the SVN, while keeping full commits on my Git repo. But I did not find how to do this. Here my story. Let's call "upstream" the local branch connected to the SVN, the raw SVN mirror branch is remotes/upstream. Now, I create a branch "topic" from "upstream" and I do jo...
May 1, 12:40 pm 2007
Andy Parkins
Re: git-svn and local only topic branch
No. Subversion doesn't do merge tracking. What you're asking for would require that. While git-svn is good, it cannot give subversion abilities it doesn't have. It's an easy trap to fall into because git makes it so easy that you can forget that not everyone else can do it. Andy -- Dr Andy Parkins, M Eng (hons), MIET andyparkins@gmail.com -
May 1, 2:29 pm 2007
Adam Roben
Re: git-svn and local only topic branch
If you just want to make a commit to Subversion containing all the changes on your branch, then you should be able to do this: git svn commit-diff upstream topic That will take the entire diff between upstream and your topic branch and make one commit to Subversion containing that diff. -Adam -
May 1, 12:45 pm 2007
Guilhem Bonnefille
Re: git-svn and local only topic branch
Yes, I want to make a single commit on Subversion containing all the changes of my topic branch. But I also want to keep track of this "merge" in my local Git repo. So I want that the new commit on my upstream branch store an ancestry with both upstream and topic branches. I fear that "commit-diff" will only produce a commit on SVN, that will be stored as a single and normal commit on my (local) upstream branch. -- Guilhem BONNEFILLE -=- #UIN: 15146515 JID: guyou@im.apinc.org MSN: guilhem_bo...
May 1, 1:30 pm 2007
newsgroups May 1, 11:54 am 2007
newsgroups
git cvsimport fails
Hi I'm trying to import from a CVS repository and get this error message at the end: |Commit ID 076fd7d71925bb551320aa20aa8eec68bf218f45 |DONE. |fatal: Needed a single revision |Can merge only exactly one commit into empty head |Could not merge origin into the current branch. Is my git repo broken, is the CVS repo broken, is it just a shortcoming of cvsimport? Any idea whether it is fixable? Thomas -
May 1, 11:47 am 2007
Martin Koegler
[RFC] Optimize diff-delta.c
I try to use git with large blobs. Putting such blobs into pack files is a slow operation and requires lots of memory. So I take a look at the packing process. As the delta format only supports 32 bit offsets, the uncompressed blob size is limited to 4GB. The delta index has approximately the same size in memory as the uncompressed blob ((blob size)/16*(sizeof(index_entry)). git-pack-objects keep the delta index of all objects in the search window in memory. So doing a delta of 4 GB files is ...
May 1, 10:49 am 2007
Nicolas Pitre
Re: [RFC] Optimize diff-delta.c
Right. I think it would be a good idea to extend the delta format as One thing that could be done with really large blobs is to create a sparser index, i.e. have a larger step than 16. Because the delta match loop scans backward after a match the sparse index shouldn't affect compression that much on large blobs and the index could be I'm surprised that your patch makes so much of a difference. Normally the first window should always match in the case you're trying to optimize and the...
May 1, 12:05 pm 2007
Johannes Schindelin
Re: [RFC] Optimize diff-delta.c
Hi, The interesting timings, of course, would be of big blobs which are _not_ append-only, as they are more common, at least for me. Since git.git contained next to no binary blobs, this is not a good test case. Ciao, Dscho -
May 1, 11:51 am 2007
Christian Couder
[RFC/PATCH] Bisect: add special treatment for bangs passed t...
Something like: $ git bisect run ! grep string my_file does not work right now probably because '!' is a shell keyword. (This simple script shows the problem: $ echo "#"\!"/bin/sh" > ./simple_test.sh $ echo "echo \"running:\" \"\$@\"" >> ./simple_test.sh $ echo "\"\$@\"" >> ./simple_test.sh $ chmod +x ./simple_test.sh $ ./simple_test.sh ! grep foo bar.txt running: ! grep foo bar.txt ./simple_test.sh: line 3: !: command not found ) This patch tries to work around ...
May 1, 8:17 am 2007
Jari Aalto
FYI: 1.5.1.3 Cygwin build result (compiler warnings)
FYI, In case someone gets interested in addressing the warnings, here is compile result under current Cygwin. Jari ---------------------------------------------------------------------- GNU Make 3.81 gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) GIT_VERSION = 1.5.1.3 rm -f *.o mozilla-sha1/*.o arm/*.o ppc/*.o compat/*.o xdiff/*.o \ test-chmtime.exe libgit.a xdiff/lib.a rm -f git-convert-objects.exe git-fetch-pack.exe git-fsck.exe git-hash-object.exe git-i...
May 1, 7:14 am 2007
Andy Parkins
svn:externals using git submodules
Hello, I've done this by hand as a proof of concept I suspect it would need loads of work in git-svn to do it properly. However, I thought I'd mention as part of my "success with submodules" reports. ffmpeg is managed with svn; I like to track its development with git-svn. Works wonderfully except for one problem: they've made use of svn:externals for one component, libswscale. Previously I just regularly updated the libswscale subdirectory by checking out the latest copy (which is all th...
May 1, 6:21 am 2007
Chris Shoemaker
Re: svn:externals using git submodules
That's truly interesting, Andy. Thanks for the encouraging report. Please do keep us informed of anything more you conclude about this approach. I'm sure some of the experts around here can respond with the pros and cons of this technique. For my part, I wonder if it can be simplified somehow; and I suspect it doesn't work well with svn:externals that specify a particular revision. -
May 1, 11:07 am 2007
Shawn O. Pearce
Re: svn:externals using git submodules
Actually that is an interesting point that Chris makes. Isn't the svn:externals property revision controlled on the parent directory? So each change to it is actually recorded in the revision history of the parent project. And if every svn:externals URL included the exact version of the other project to include, aren't svn:externals then more-or-less like the subproject link support, except they also include the URL? -- Shawn. -
May 1, 11:22 am 2007
Chris Shoemaker
Re: svn:externals using git submodules
Just to clarify, my point was just that Andy's setup seems to assume that the externals don't specify a revision. If they do, maybe git-svn can map the externals into subprojects. Is this what you're thinking? -
May 1, 11:36 am 2007
Andy Parkins
Re: svn:externals using git submodules
Yes and no. Think of svn:externals as a file in the parent repository; it contains directory-name URL Now, changes to that file _are_ tracked, in that if I changed the URL that change would be recorded in the parent repository. However, nowhere is the revision of the external recorded. Subversion always Well, I'm thinking that that information /can/ be reconstructed from the revision date information - kind of - the problem is that there is no way to know when the parent updated ...
May 1, 2:36 pm 2007
Chris Shoemaker
Re: svn:externals using git submodules
That's only true when the revision is not specified in the external. The repo you track may not do that, but it's not uncommon to do so. And, as I think you're pointing out, it's the only way to get any sort of reliable information about the relationship between the parent and the external. I think it would probably be undesirable for git-svn to attempt to convert "floating" externals into well-versioned submodules, since they're not even well-versioned in the svn repo. However, handling svn ...
May 1, 3:17 pm 2007
Andy Parkins
Re: svn:externals using git submodules
It's been a while since I used subversion, and even longer since I used externals - is that a new feature? I used subversion since before Does subversion automatically update that fixed attachment when you Absolutely. If the information is available, then git is certainly capable of recording it. It sounds like subversion has a facility I didn't know exist, so I've been bad mouthing it more than I should. Oh well :-) Andy -- Dr Andy Parkins, M Eng (hons), MIET andyparkins@...
May 1, 3:48 pm 2007
Chris Shoemaker
Re: svn:externals using git submodules
I don't know, but I would guess that it's no newer than externals in No, you have to manage the revision in the svn:external property Making git-svn handle svn:externals with specified revisions would be _quite_ useful. There's a special-case of this that I use personally: svn:externals that point to other paths (and other revisions) of the parent repo. I'm curious if people think that teaching git-svn to handle this special case is more or less difficult than handling the general case. -...
May 1, 4:23 pm 2007
Linus Torvalds
Re: svn:externals using git submodules
Side note: even _without_ a specified revision, I think it's quite sane to have the rule that a submodule hash of all zeroes is "unversioned". Such a submodule is still _useful_: while the tree itself contains no information (and it SHOULD NOT do so, since the actual location of the external module may not be globally stable or visible!), it would basically act like subversion externals together with the ".gitmodules" file that contains that information. So while the git submodule thin...
May 1, 6:19 pm 2007
Junio C Hamano
Re: svn:externals using git submodules
The thing is, almost all the core git people happen to be busy at the same time at this moment. Johannes has just moved, Shawn and I are deep in day-jobs to the neck, ... Don't worry, it eventually will come. -
May 1, 6:37 pm 2007
Shawn O. Pearce
Re: svn:externals using git submodules
Heh, very true. My short-term focus (this week) is git-gui, then pack v4, and probably while working on pack v4 start at least playing with Linus' gitlink thing and prototyping porcleain over it. The gitlink work interests me, and I want to spend time on it, but as Junio said, I'm overbooked... -- Shawn. -
May 1, 7:16 pm 2007
Andy Parkins
Re: svn:externals using git submodules
I meant to add as well that this is absolutely NOT the thing that you want to be tracked. There are any number of times while using externals that I reorganised a directory only to have to change the svn:externals in the parent. That change is then tracked, so if you check out an earlier version not only do you not get a particular revision you also don't get the right URL, so subverion doesn't even fetch the current version. Gah! Andy -- Dr Andy Parkins, M Eng (hons), MIET andyp...
May 1, 2:39 pm 2007
Shawn O. Pearce May 1, 11:40 am 2007
Martin Koegler
[PATCH] Fix compilation of test-delta
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at> --- test-delta.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/test-delta.c b/test-delta.c index 16595ef..3d885ff 100644 --- a/test-delta.c +++ b/test-delta.c @@ -10,8 +10,9 @@ #include "git-compat-util.h" #include "delta.h" +#include "cache.h" -static const char usage[] = +static const char usage_str[] = "test-delta (-d|-p) <from_file> <data_file> <out_file>"; int...
May 1, 5:47 am 2007
Junio C Hamano May 1, 6:08 am 2007
Christian Couder
[RFC/PATCH] Bisect: add special treatment for bangs passed t...
Something like: $ git bisect run ! grep string my_file does not work right now, probably because '!' is a shell keyword. (This simple script shows the problem: $ echo "#"\!"/bin/sh" > ./simple_test.sh $ echo "echo \"running:\" \"\$@\"" >> ./simple_test.sh $ echo "\"\$@\"" >> ./simple_test.sh $ chmod +x ./simple_test.sh $ ./simple_test.sh ! grep foo bar.txt running: ! grep foo bar.txt ./simple_test.sh: line 3: !: command not found ) This patch tries to work around...
May 1, 5:31 am 2007
Uwe
Re: [RFC/PATCH] Bisect: add special treatment for bangs pass...
I didn't check you patch in deep, but you should consider that the special meaning of "!" isn't implemented in the original Bourne Shell[1]. IIRC this or something similar was brought up some time ago and the result was, that your script has to do the negation if needed. Best regards Uwe [1] login@~ > uname -a SunOS login 5.10 Generic_118833-36 sun4u sparc login@~ > /bin/sh -c "! true" /bin/sh: !: not found -- Uwe Kleine-K
May 1, 5:44 am 2007
Jonas Fonseca
[PATCH] git-tag(1): -v option is a subcommand; fix code block
When the -v is passed, git-tag will exit after it is processed like it does with the -d and -l options. Additionally, missing code block caused wrong rendering of an option example. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> --- Documentation/git-tag.txt | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt index 70235e8..4e3e027 100644 --- a/Documentation/git-tag.txt +++ b/Documentation/git-tag.txt @@ -9,9...
May 1, 3:24 am 2007
Shawn O. Pearce
[PATCH] Improve request-pull to handle non-rebased branches
This is actually a few different changes to request-pull, making it slightly smarter: 1) Minor cleanup of revision->base variable names, making it follow the head/headrev naming convention that is already in use. 2) Compute the merge-base between the two revisions upfront and reuse that selected merge-base to create the diffstat. 3) Refuse to generate a pull request for branches that have no existing relationship. These aren't very common and would mess up our diffs...
May 1, 2:08 am 2007
Junio C Hamano
Re: [PATCH 1/8] git-repack --max-pack-size: add new file sta...
This by itself does not seem to do anything (no logic, no command line option parsing, nothing). Why is this a separate patch? -
May 1, 12:11 am 2007
Dana How
Re: [PATCH 1/8] git-repack --max-pack-size: add new file sta...
Remember this all started with me submitting one monolithic patch which attracted some complaints. After that, I broke the changes into patchsets with 3 kinds of patches: (a) Changes (addtitions) to data structures and declarations; (b) Code restructuring and added forward function declarations adding _no_ functionality; (c) Added functionality, (almost) one function at a time. So 1/8 is the only member of group (a). Previously there were more changes in (a). I'm working on another cha...
May 1, 12:43 am 2007
Junio C Hamano
Re: [PATCH] Checklist clarifications: added "Commits", "Patc...
Also an EXAMPLES section to Documentation/git-send-email.txt would be useful. -
May 1, 12:11 am 2007
Shawn O. Pearce
Re: [PATCH 8/8] git-repack --max-pack-size: add option parsi...
Wow, are you serious? This entire change is about making repack automatically split large projects into multiple packfiles. If that happens are you intending that the caller will mark all of those packfiles with .keep files immediately after repacking them? If you want users to create .keep files, can git-repack.sh do that for them when more than one packfile was output? Because otherwise a "quick" git-gc will not be quick because the reuse delta feature (which is a massive performance improvem...
May 1, 1:45 am 2007
Dana How
Re: [PATCH 8/8] git-repack --max-pack-size: add option parsi...
In a previous version of this patchset I explained that I had turned on no_reuse_delta because I hadn't yet verified all the combinations in the reuse codepath(s). I guess I'll be reinspecting them sooner Sorry, you lost me. git is being bisected, or a project managed by git? My intent was that the pack splitting wouldn't be available until _all_ patches were applied (active). Bisecting git _within_ this patchset would still be useful -- it could be used to isolate where some of this new code brok...
May 1, 2:15 am 2007
Shawn O. Pearce
Re: [PATCH 8/8] git-repack --max-pack-size: add option parsi...
git bisecting itself, to search for bugs in itself... In that case a bisect could stop at any random point in the middle of this series, even if this series isn't the one that is at fault for the given breakage. In such a case we try to hope that git.git is always in a working state at any given commit. On second thought looking at your series I see how you were able to assure that here. You didn't activate the option until the shell script could also handle more than one name, so since the op...
May 1, 2:27 am 2007
Shawn O. Pearce
Re: [PATCH 7/8] git-repack --max-pack-size: split packs as a...
What about keeping track of how many objects in nr_result that have been written already in the prior iteration of this do{} while loop and using that to set hdr_entries? This way if you are splitting into multiple packfiles the last packfile won't need to do a header/footer fixup. -- Shawn. -
May 1, 1:40 am 2007
Dana How
Re: [PATCH 7/8] git-repack --max-pack-size: split packs as a...
Cool -- I had the same thought (late), but figured I would address it in a follow-on. I was thinking of adding nr_left, which would be initialized from nr_result, and have nr_written repeatedly subtracted. nr_result in your quote would change to nr_left (also later, where we decide whether or not to fix up the header). Thanks, -- Dana L. How danahow@gmail.com +1 650 804 5991 cell -
May 1, 2:05 am 2007
previous daytodaynext day
March 31, 2007May 1, 2007May 2, 2007