- 20 6月, 2006 2 次提交
-
-
由 Florian Forster 提交于
ANSI C99 doesn't allow void-pointer arithmetic. This patch fixes this in various ways. Usually the strategy that required the least changes was used. Signed-off-by: NFlorian Forster <octo@verplant.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Linus Torvalds 提交于
We've had this notion of a "object_list" for a long time, which eventually grew a "name" member because some users (notably git-rev-list) wanted to name each object as it is generated. That object_list is great for some things, but it isn't all that wonderful for others, and the "name" member is generally not used by everybody. This patch splits the users of the object_list array up into two: the traditional list users, who want the list-like format, and who don't actually use or want the name. And another class of users that really used the list as an extensible array, and generally wanted to name the objects. The patch is fairly straightforward, but it's also biggish. Most of it really just cleans things up: switching the revision parsing and listing over to the array makes things like the builtin-diff usage much simpler (we now see exactly how many members the array has, and we don't get the objects reversed from the order they were on the command line). One of the main reasons for doing this at all is that the malloc overhead of the simple object list was actually pretty high, and the array is just a lot denser. So this patch brings down memory usage by git-rev-list by just under 3% (on top of all the other memory use optimizations) on the mozilla archive. It does add more lines than it removes, and more importantly, it adds a whole new infrastructure for maintaining lists of objects, but on the other hand, the new dynamic array code is pretty obvious. The change to builtin-diff-tree.c shows a fairly good example of why an array interface is sometimes more natural, and just much simpler for everybody. Signed-off-by: NLinus Torvalds <torvalds@osdl.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 19 6月, 2006 1 次提交
-
-
由 Florian Forster 提交于
Though very nice and readable, the "case 'a'...'z':" construct is not ANSI C99 compliant. This patch unfolds the range in `quote.c' and substitutes the switch-statement with an if-statement in `http-fetch.c' and `http-push.c'. Signed-off-by: NFlorian Forster <octo@verplant.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 18 6月, 2006 1 次提交
-
-
由 Linus Torvalds 提交于
This shrinks "struct object" by a small amount, by getting rid of the "struct type *" pointer and replacing it with a 3-bit bitfield instead. In addition, we merge the bitfields and the "flags" field, which incidentally should also remove a useless 4-byte padding from the object when in 64-bit mode. Now, our "struct object" is still too damn large, but it's now less obviously bloated, and of the remaining fields, only the "util" (which is not used by most things) is clearly something that should be eventually discarded. This shrinks the "git-rev-list --all" memory use by about 2.5% on the kernel archive (and, perhaps more importantly, on the larger mozilla archive). That may not sound like much, but I suspect it's more on a 64-bit platform. There are other remaining inefficiencies (the parent lists, for example, probably have horrible malloc overhead), but this was pretty obvious. Most of the patch is just changing the comparison of the "type" pointer from one of the constant string pointers to the appropriate new TYPE_xxx small integer constant. Signed-off-by: NLinus Torvalds <torvalds@osdl.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 17 6月, 2006 1 次提交
-
-
由 Peter Eriksen 提交于
Signed-off-by: NPeter Eriksen <s022018@student.dtu.dk> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 07 6月, 2006 2 次提交
-
-
由 Junio C Hamano 提交于
This ifdef's out more functions that are not used while !USE_MULTI in http code. Also the dependency of http related objects on http.h header file was missing in the Makefile. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Fix broken build when USE_CURL_MULTI is not defined, as noted by Becky Bruce. During cleanup, free header slist that was created during init, as noted by Junio. Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 31 5月, 2006 1 次提交
-
-
由 Linus Torvalds 提交于
This adds a "tree_entry()" function that combines the common operation of doing a "tree_entry_extract()" + "update_tree_entry()". It also has a simplified calling convention, designed for simple loops that traverse over a whole tree: the arguments are pointers to the tree descriptor and a name_entry structure to fill in, and it returns a boolean "true" if there was an entry left to be gotten in the tree. This allows tree traversal with struct tree_desc desc; struct name_entry entry; desc.buf = tree->buffer; desc.size = tree->size; while (tree_entry(&desc, &entry) { ... use "entry.{path, sha1, mode, pathlen}" ... } which is not only shorter than writing it out in full, it's hopefully less error prone too. [ It's actually a tad faster too - we don't need to recalculate the entry pathlength in both extract and update, but need to do it only once. Also, some callers can avoid doing a "strlen()" on the result, since it's returned as part of the name_entry structure. However, by now we're talking just 1% speedup on "git-rev-list --objects --all", and we're definitely at the point where tree walking is no longer the issue any more. ] NOTE! Not everybody wants to use this new helper function, since some of the tree walkers very much on purpose do the descriptor update separately from the entry extraction. So the "extract + update" sequence still remains as the core sequence, this is just a simplified interface. We should probably add a silly two-line inline helper function for initializing the descriptor from the "struct tree" too, just to cut down on the noise from that common "desc" initializer. Signed-off-by: NLinus Torvalds <torvalds@osdl.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 30 5月, 2006 2 次提交
-
-
由 Linus Torvalds 提交于
Instead, just use the tree buffer directly, and use the tree-walk infrastructure to walk the buffers instead of the tree-entry list. The tree-entry list is inefficient, and generates tons of small allocations for no good reason. The tree-walk infrastructure is generally no harder to use than following a linked list, and allows us to do most tree parsing in-place. Some programs still use the old tree-entry lists, and are a bit painful to convert without major surgery. For them we have a helper function that creates a temporary tree-entry list on demand. Signed-off-by: NLinus Torvalds <torvalds@osdl.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Linus Torvalds 提交于
This is preparatory work for further cleanups, where we try to make tree_entry look more like the more efficient tree-walk descriptor. Signed-off-by: NLinus Torvalds <torvalds@osdl.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 29 5月, 2006 2 次提交
-
-
由 Linus Torvalds 提交于
This finally removes the tree-entry list from "struct tree", since most of the users can just use the tree-walk infrastructure to walk the raw tree buffers instead of the tree-entry list. The tree-entry list is inefficient, and generates tons of small allocations for no good reason. The tree-walk infrastructure is generally no harder to use than following a linked list, and allows us to do most tree parsing in-place. Some programs still use the old tree-entry lists, and are a bit painful to convert without major surgery. For them we have a helper function that creates a temporary tree-entry list on demand. We can convert those too eventually, but with this they no longer affect any users who don't need the explicit lists. Signed-off-by: NLinus Torvalds <torvalds@osdl.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Linus Torvalds 提交于
This is preparatory work for further cleanups, where we try to make tree_entry look more like the more efficient tree-walk descriptor. Instead of having a union of pointers to blob/tree/objects, this just makes "struct tree_entry" have the raw SHA1, and makes all the users use that instead (often that implies adding a "lookup_tree(..)" on the sha1, but sometimes the user just wanted the SHA1 in the first place, and it just avoids an unnecessary indirection). Signed-off-by: NLinus Torvalds <torvalds@osdl.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 17 4月, 2006 1 次提交
-
-
由 Junio C Hamano 提交于
The boundary commits are shown for UI like gitk to draw them as soon as topo-order sorting allows, and should not be omitted by get_revision() filtering logic. As long as their immediate child commits are shown, we should not filter them out. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 16 4月, 2006 1 次提交
-
-
由 Junio C Hamano 提交于
Merging all three option parsers related to whatchanged is unarguably the right thing, but the fallout was too big to scare me away. Let's try it once again, but once step at time. This splits out init_revisions() call from setup_revisions(), so that the callers can set different defaults to match the traditional benaviour. The rev-list command is still broken in a big way, which is the topic of next step. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 12 4月, 2006 1 次提交
-
-
由 Dennis Stosberg 提交于
strchr() is more portable than index() and is used everywhere in git already. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 11 4月, 2006 1 次提交
-
-
由 Junio C Hamano 提交于
This makes things that include revision.h build again. Blame is also built, but I am not sure how well it works (or how well it worked to begin with) -- it was relying on tree-diff to be using whatever pathspec was used the last time, which smells a bit suspicious. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 09 4月, 2006 1 次提交
-
-
由 Linus Torvalds 提交于
The parent rewriting feature caused us to create the whole history in one go, and then simplify it later, because of how rewrite_parents() had been written. However, with a little tweaking, it's perfectly possible to do even that one incrementally. Right now, this doesn't really much matter, because every user of "--parents" will probably generally _also_ use "--topo-order", which will cause the old non-incremental behaviour anyway. However, I'm hopeful that we could make even the topological sort incremental, or at least _partially_ so (for example, make it incremental up to the first merge). In the meantime, this at least moves things in the right direction, and removes a strange special case. Signed-off-by: NLinus Torvalds <torvalds@osdl.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 04 4月, 2006 1 次提交
-
-
由 Peter Eriksen 提交于
Signed-off-by: NPeter Eriksen <s022018@student.dtu.dk> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 03 4月, 2006 1 次提交
-
-
由 Rene Scharfe 提交于
Signed-off-by: NRene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 22 3月, 2006 1 次提交
-
-
由 Junio C Hamano 提交于
If you write code after declarations in a block, gcc scolds you with "warning: ISO C90 forbids mixed declarations and code". Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 21 3月, 2006 2 次提交
-
-
由 Nick Hengeveld 提交于
Declare remote_dir_exists[] as signed char to be sure that values of -1 are valid. Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Processes new command-line arguments -d and -D to remove a remote branch if the following conditions are met: - one branch name is present on the command line - the specified branch name matches exactly one remote branch name - the remote HEAD is a symref - the specified branch is not the remote HEAD - the remote HEAD resolves to an object that exists locally (-d only) - the specified branch resolves to an object that exists locally (-d only) - the specified branch is an ancestor of the remote HEAD (-d only) Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 11 3月, 2006 6 次提交
-
-
由 Nick Hengeveld 提交于
More consistent usage string, condense push output, remove extra slashes in URLs, fix unused variables, include HTTP method name in failure messages. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
If info/refs exists on the remote, get a lock on info/refs, make sure that there is a local copy of the object referenced in each remote ref (in case someone else added a tag we don't have locally), do all the refspec updates, and generate and send an updated info/refs file. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Associate the remote locks with the remote repo, add a function to check and refresh all current locks. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Replace single-use functions with one that can get a list of remote collections and pass file/directory information to user-defined functions for processing. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Incorporate into http-push a fix related to accessing slot results after the slot was reused, and fix a case in run_active_slot where a finished slot wasn't detected if the slot was reused. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
The revision walk was not including tags because setup_revisions zeroes out the revs flags. Pass --objects so it picks up all the necessary bits. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 08 3月, 2006 1 次提交
-
-
由 Nick Hengeveld 提交于
This brings http-push functionality more in line with the ssh/git version, by borrowing bits from send-pack and rev-list to process refspecs and revision history in more standard ways. Also, the status of remote objects is determined using PROPFIND requests for the object directory rather than HEAD requests for each object - while it may be less efficient for small numbers of objects, this approach is able to get the status of all remote loose objects in a maximum of 256 requests. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 30 11月, 2005 1 次提交
-
-
由 Nick Hengeveld 提交于
The malloc patch from Jan Andres fixed the problem that was causing a segfault when freeing the lock token, and Johannes Schindelin found and fixed a problem when no URL is specified on the command line. Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 29 11月, 2005 2 次提交
-
-
由 Junio C Hamano 提交于
These are whole-tree operations and there is not much point making them operable from within a subdirectory, but it is easy to do so, and using setup_git_directory() upfront helps git:// proxy specification picked up from the correct place. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Jan Andres 提交于
Typo resulted in accessing past the beginning of a string causing segfaults. [jc: signoffs?]
-
- 20 11月, 2005 4 次提交
-
-
由 Nick Hengeveld 提交于
The decision about whether to build http-push or not belongs in the Makefile. This follows Junio's suggestion to determine whether curl is new enough to support http-push. Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Clean up memory and file descriptor usage Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Improved XML parsing - replace specialized doc parser callbacks with generic functions that track the parser context and use document-specific callbacks to process that data. Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Move shared HTTP request functionality out of http-fetch and http-push, and replace the two fwrite_buffer/fwrite_buffer_dynamic functions with one fwrite_buffer function that does dynamic buffering. Use slot callbacks to process responses to fetch object transfer requests and push transfer requests, and put all of http-push into an #ifdef check for curl multi support. Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 09 11月, 2005 1 次提交
-
-
由 Peter Hagervall 提交于
Make a bunch of needlessly global functions static, and replace two K&R-style declarations. Signed-off-by: NPeter Hagervall <hager@cs.umu.se> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 08 11月, 2005 2 次提交
-
-
由 Johannes Schindelin 提交于
This patch fixes three things: - older libexpat does not know about enum XML_Status - as in my patch for http-fetch, do not rely on a curl result in free()d data - calloc the new_lock structure Signed-off-by: NJohannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Remember object directories known to exist in the remote repo and don't bother trying to create them. Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 07 11月, 2005 1 次提交
-
-
由 Paul Collins 提交于
Do not search the current directory when including expat.h, since it is not supplied by git. Signed-off-by: NPaul Collins <paul@briny.ondioline.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-