src


Log

Author Commit Date CI Message
Russell Belfer b4f5bb07 2012-10-23T16:40:51 Initial implementation of diff rename detection This implements the basis for diff rename and copy detection, although it is based on simple SHA comparison right now instead of using a matching algortihm. Just as `git_diff_merge` can be used as a post-pass on diffs to emulate certain command line behaviors, there is a new API `git_diff_detect` which will update a diff list in-place, adjusting some deltas to RENAMED or COPIED state (and also, eventually, splitting MODIFIED deltas where the change is too large into DELETED/ADDED pairs). This also adds a new test repo that will hold rename/copy/split scenarios. Right now, it just has exact-match rename and copy, but the tests are written to use tree diffs, so we should be able to add new test scenarios easily without breaking tests.
yorah a1abe66a 2012-09-10T12:11:02 Add config level support in the config API Added `struct git_config_entry`: a git_config_entry contains the key, the value, and the config file level from which a config element was found. Added `git_config_open_level`: build a single-level focused config object from a multi-level one. We are now storing `git_config_entry`s in the khash of the config_file
yorah f8ede948 2012-09-18T14:10:40 Fix adding variable to config file with no trailing newline This can occur after a manual modification of a config file.
Vicent Martí 8a89aa1f 2012-10-22T12:04:48 Merge pull request #963 from carlosmn/remote-save-autotag Save the autotag configuration for remotes
Vicent Martí 40846f3d 2012-10-22T10:51:43 Merge pull request #1004 from nulltoken/error/GIT_EORPHANEDHEAD More orphaned head love
nulltoken c436ed26 2012-10-20T12:09:02 reset: make git_reset() cope with an orphaned HEAD
nulltoken cfa6465c 2012-10-22T15:08:09 blob: do not create temp files in the current path - make sure temporary streamed blobs are created under the .git/objects folder and not in the current path, whatever it is. - do not make the name of the temp file depend on the hintpath.
Philip Kelley 11c2a9c6 2012-10-19T17:06:07 Merge pull request #1003 from arrbee/fix-test-core-env Fix env variable tests with new Win32 path rules
Russell Belfer 0d422ec9 2012-10-19T15:40:43 Fix env variable tests with new Win32 path rules The new Win32 global path search was not working with the environment variable tests. But when I fixed the test, the new codes use of getenv() was causing more failures (presumably because of caching on Windows ???). This fixes the global file lookup to always go directly to the Win32 API in a predictable way.
nulltoken 8b05bea8 2012-10-19T17:07:39 errors: deploy GIT_EORPHANEDHEAD usage
nulltoken 0532e7bb 2012-10-19T20:34:33 branch: allow deletion of branch when HEAD's missing
nulltoken c2e43fb1 2012-10-18T16:50:55 diff: workdir diffing in a bare repo returns EBAREREPO
nulltoken 5912d74c 2012-10-18T22:25:27 revparse: properly handle refnames containing a @ Fix #994
Carlos Martín Nieto b2b571ce 2012-10-18T19:05:24 fetch: declare variables at the top of the block
Carlos Martín Nieto f0d2ddbb 2012-10-18T04:31:03 remote: support fetch cancelation Introduce git_remote_stop() which sets a variable that is checked by the fetch process in a few key places. If this is variable is set, the fetch is aborted.
Russell Belfer 4c47a8bc 2012-10-17T14:14:51 Merge pull request #968 from arrbee/diff-support-typechange Support TYPECHANGE records in status and adjust checkout accordingly
Russell Belfer 52a61bb8 2012-10-17T14:10:23 Fix minor bugs Fixed no-submodule speedup of new checkout code. Fixed missing final update to progress (which may go away, I realize). Fixed unused structure in header and incorrect comment.
Ben Straub 6012e868 2012-10-17T11:55:26 Merge pull request #972 from PaulThompson/separate_strarray Separated git_strarray from common.h. Added doxy comments.
Russell Belfer e48bb71b 2012-10-17T10:44:38 Skip submodule checkout pass if no submodules Skip the third pass of checkout (where submodules are checked out) if the earlier passes found no submodules to be checked out.
Philip Kelley b4491b99 2012-10-16T16:18:21 Incremental improvements to pack-objects logic Incorporate feedback for incr. improvements to pack-objects
Vicent Martí 03452b34 2012-10-16T10:54:30 Merge pull request #987 from pwkelley/pthread_cond Support pthread_cond_* on Win32
Vicent Marti 18217e7e 2012-10-16T19:34:29 test: Don't be so picky with failed lookups Not found means not found, and the other way around.
Philip Kelley 5e4f2b5f 2012-10-16T13:18:45 Support pthread_cond_* on Win32
Carlos Martín Nieto a8918418 2012-10-16T17:58:19 config: also free the XDG buffer
Vicent Martí 52748f7b 2012-10-16T08:36:55 Merge pull request #952 from csware/config-locations Config location fixes
Philip Kelley 9e37305a 2012-10-16T08:34:28 Merge pull request #984 from arrbee/fix-fnmatch-and-ignore Fix single file ignores
Ben Straub 71b79a0a 2012-10-15T15:24:50 Merge pull request #982 from nulltoken/clone/no-checkout clone: Explicit support of no-checkout option
Russell Belfer 52032ae5 2012-10-15T12:48:43 Fix single-file ignore checks To answer if a single given file should be ignored, the path to that file has to be processed progressively checking that there are no intermediate ignored directories in getting to the file in question. This enables that, fixing the broken old behavior, and adds tests to exercise various ignore situations.
Russell Belfer d5a51910 2012-10-11T13:39:53 Import DOS fix for fnmatch Because fnmatch uses recursion, there were some input sequences that cause seriously degenerate behavior. This imports a fix that imposes a max recursion limiter to avoid the worst of it.
Russell Belfer 824d5e4d 2012-10-11T11:58:00 Always use internal fnmatch, not system
nulltoken 68206c54 2012-10-13T21:00:45 test: fix some memory leaks
nulltoken fa5d94a0 2012-10-13T20:51:57 reset: prevent hard reset in a bare repository
nulltoken c4f68b32 2012-10-15T07:06:22 clone: fix detection of remote HEAD
nulltoken 4d968f13 2012-10-15T06:12:57 clone: Explicit support of no-checkout option
Carlos Martín Nieto 7ae5ab56 2012-10-15T16:35:10 Fix leak in the tests Also introduce the slective ref trimming promised but also missed in the previous commit.
Carlos Martín Nieto 47f44b6e 2012-10-15T13:51:25 refs: loosen the OID parsing We used to require loose references to contain only an OID (possibly after trimming the string). This is however not enough for letting us lookup FETCH_HEAD, which can have a lot of content after the initial OID. Change the parsing rules so that a loose refernce must e at least 40 bytes long and the 41st (if it's there) must be accepted by isspace(3). This makes the trim unnecessary, so only do it for symrefs. This fixes #977.
Philip Kelley 9d9288f4 2012-10-14T12:29:05 Fix buffer overrun in git_buf_put_base64
nulltoken 62993b61 2012-10-11T14:08:32 branches: propagate EEXISTS upon creation
Paul Thompson b46708aa 2012-10-11T23:04:08 Separated git_strarray from common.h. Added doxy comments.
nulltoken 3548fcf5 2012-10-11T14:00:26 refs: propagate EEXISTS upon renaming
Vicent Martí 9206976f 2012-10-10T15:00:32 Merge pull request #971 from arrbee/base64-encoder Add git_buf_put_base64 to buffer API
Carlos Martín Nieto aeba5e17 2012-10-10T23:55:03 http: don't discard the HEAD ref The fix for fetching from empty repositories (22935b06d protocol: don't store flushes; 2012-10-07) forgot to take into account the deletion of the flush pkt in the HTTP transport. As a result, the HEAD ref advertisement where we detect the remote's capabilities was deleted instead. Fix this.
Russell Belfer 2d3579be 2012-10-10T14:54:31 Add git_buf_put_base64 to buffer API
Michael Schubert 0cf49e10 2012-10-09T21:49:48 fixup! gsoc-pack-objects WIP Use khash instead of git.git's hashing algorithm.
Michael Schubert 0a32dca5 2012-08-19T22:26:32 gsoc-pack-objects WIP
Michael Schubert ec1d42b7 2012-08-19T22:22:07 Add diff-delta code from git.git
Michael Schubert e3f8d58d 2012-08-14T23:07:54 indexer: do not require absolute path
Michael Schubert fa16a6ec 2012-08-01T11:35:26 Enable pthread condition vars
Michael Schubert 2f05339e 2012-07-10T08:53:05 Add git_tag_foreach
Michael Schubert edca6c8f 2012-07-01T19:44:22 git_odb_object_free: don't segfault w/ arg == NULL
Michael Schubert 4bc1a30f 2012-06-10T22:04:24 util: add git__compress()
Russell Belfer 0d64bef9 2012-10-05T15:56:57 Add complex checkout test and then fix checkout This started as a complex new test for checkout going through the "typechanges" test repository, but that revealed numerous issues with checkout, including: * complete failure with submodules * failure to create blobs with exec bits * problems when replacing a tree with a blob because the tree "example/" sorts after the blob "example" so the delete was being processed after the single file blob was created This fixes most of those problems and includes a number of other minor changes that made it easier to do that, including improving the TYPECHANGE support in diff/status, etc.
Russell Belfer 95f5f1e6 2012-10-02T13:57:15 Cleanup TYPECHANGE support This is just some cleanup code, rearranging some of the checkout code where TYPECHANGE support was added and adding some comments to the diff header regarding the constants.
Russell Belfer fbec2fb9 2012-09-28T14:32:33 Fix checkout to know about TYPECHANGE diffs
Russell Belfer bc16fd3e 2012-09-28T13:40:02 Introduce status/diff TYPECHANGE flags When I wrote the diff code, I based it on core git's diff output which tends to split a type change into an add and a delete. But core git's status has the notion of a T (typechange) flag for a file. This introduces that into our status APIs and modifies the diff code so it can be forced to not split type changes.
Russell Belfer fade21db 2012-09-28T13:39:34 Improve error propogation in checkout
Vicent Martí 21e0d297 2012-10-09T11:45:50 Merge pull request #967 from arrbee/diff-submodule-tests-and-fixes Diff submodule tests and fixes
Michael Schubert aa4437f6 2012-10-09T00:51:43 Fix compiler warnings * tests-clar/status: remove an unused variable * clone: fix -Wmaybe-uninitialized warning
Ben Straub 9adfa7d1 2012-10-08T15:25:44 Merge pull request #949 from nulltoken/topic/deploy_repository_set_head Deploy git_repository_set_head()
Russell Belfer 5d1308f2 2012-10-08T15:19:00 Add test for diffs with submodules and bug fixes The adds a test for the submodule diff capabilities and then fixes a few bugs with how the output is generated. It improves the accuracy of OIDs in the diff delta object and makes the submodule output more closely mirror the OIDs that will be used by core git.
Russell Belfer dfbff793 2012-10-08T15:14:12 Fix a few diff bugs with directory content There are a few cases where diff should leave directories in the diff list if we want to match core git, such as when the directory contains a .git dir. That feature was lost when I introduced some of the new submodule handling. This restores that and then fixes a couple of related to diff output that are triggered by having diffs with directories in them. Also, this adds a new flag that can be passed to diff if you want diff output to actually include the file content of any untracked files.
Russell Belfer 543864b6 2012-10-08T15:21:47 Merge pull request #940 from scunz/diff_sm Diff: Show submodule diff
Philip Kelley edb456c3 2012-10-08T16:32:43 Fix a bug where ignorecase wasn't applied to ignores
nulltoken bf0e62a2 2012-10-07T12:50:18 clone: fix cloning of empty repository
nulltoken d280c71b 2012-09-26T19:22:21 clone: leverage refspec transform
nulltoken 3e012fca 2012-09-26T19:15:11 refspec: introduce git_refspec_transform_l()
nulltoken 70edc1b0 2012-09-26T11:05:12 clone: align type casing with convention
nulltoken 4ba23be1 2012-10-06T12:20:13 branch: deploy git_branch_is_head()
nulltoken 0c78f685 2012-10-06T10:41:53 branch: introduce git_branch_is_head()
nulltoken f3cc7834 2012-09-22T12:51:34 refs: deploy git_repository_set_head() usage
nulltoken 7eca3c56 2012-09-22T12:50:18 clone: deploy git_repository_set_head() usage
nulltoken a147408f 2012-09-22T12:47:17 reset: make reset rely on git_repository_head()
nulltoken 096d9e94 2012-10-07T21:00:46 remote: use constants for well-known names
nulltoken 74a24005 2012-09-21T10:28:20 refs: use constants for well-known names
Carlos Martín Nieto acd17006 2012-10-07T11:19:19 remote: only keep a weak pointer in update_tips The reference is only needed inside the function. We mistakenly increased the reference counter causing the ODB not to get freed and leaking descriptors.
Carlos Martín Nieto 22935b06 2012-10-07T10:20:23 protocol: don't store flushes Storing flushes in the refs vector doesn't let us recognize when the remote is empty, as we'd always introduce at least one element into it. These flushes aren't necessary, so we can simply ignore them.
Sascha Cunz 1dca8510 2012-10-05T13:44:18 Diff: Do not try to calculate an oid for a GITLINK. We don't have anything useful that we could do with that oid anyway (We need to query the submodule for the HEAD commit instead). Without this, the following code creates the error "Failed to read descriptor: Is a directory" when run against the submod2 test-case: const char* oidstr = "873585b94bdeabccea991ea5e3ec1a277895b698"; git_tree* tree = resolve_commit_oid_to_tree(g_repo, oidstr); git_diff_list* diff = NULL; cl_assert(tree); cl_git_pass(git_diff_workdir_to_tree(g_repo, NULL, tree, &diff));
Sascha Cunz 1686641f 2012-10-05T13:03:22 Extract submodule logic out of diff_output.c:get_workdir_content
Sascha Cunz 7e57d250 2012-09-18T23:43:23 Diff: teach get_workdir_content to show a submodule as text 1. teach diff.c:maybe_modified to query git_submodule_status for the modification state of a submodule. According to the git_submodule_status docs, it will filter for to-ignore states already. 2. teach diff_output.c:get_workdir_content to check the submodule status again and create a line like: Subproject commit <SHA-1>\n or Subproject comimt <SHA-1>-dirty\n like git.git does.
Sascha Cunz 9ce44f1a 2012-09-18T22:35:09 Diff: teach get_blob_content to show a submodule as text diff_output.c:get_blob_content used to try to read the submodule commit as a blob in the superproject's odb. Of course it cannot find it and errors out with GIT_ENOTFOUND, implcitly terminating the whole diff output. This patch teaches it to create a text that describes the submodule instead. The text looks like: Subproject commit <SHA1>\n which is what git.git does, too.
Sascha Cunz 1a5cd26b 2012-10-05T13:02:35 Fix minor whitespace issue
Russell Belfer d0b452db 2012-10-02T11:08:30 Merge pull request #932 from ben/clone_pack_race ODB: re-load packfiles on failed lookup
Russell Belfer eada0762 2012-10-02T10:45:40 Merge pull request #939 from pwkelley/ignorecase Support for the core.ignorecase flag
Sven Strickroth 997579be 2012-10-02T17:55:29 Move win32 specific stuff to win32/findfile.c Signed-off-by: Sven Strickroth <email@cs-ware.de>
Sven Strickroth 4258d483 2012-10-02T17:21:07 Rename xdr to xdg Signed-off-by: Sven Strickroth <email@cs-ware.de>
Sven Strickroth 8b3de0b6 2012-10-02T17:16:22 Optimized win32_nextpath Based on a suggestion by Russell Belfer. Signed-off-by: Sven Strickroth <email@cs-ware.de> Signed-off-by: Russell Belfer <rb@github.com>
Carlos Martín Nieto c648d4a8 2012-10-02T12:05:09 remote: don't auto-follow tags on an unamed remote An unnamed remote is used for commands like git fetch git://host/repo where no tags should be downloaded. Make this the default.
Carlos Martín Nieto 218c88a9 2012-10-02T11:48:02 remote: set/unset the autotag setting on save Make the configuration option match the configured behavior when saving a remote.
Vicent Martí 8bc5cacc 2012-10-01T13:57:32 Merge pull request #961 from arrbee/win64-cleanups Win64 cleanups
Russell Belfer 7c411fd9 2012-10-01T12:32:55 Fix up more Win64 compile warnings
Vicent Marti 93b5fabc 2012-10-01T17:59:04 threads: Assert that the global state is initialized
Vicent Marti 9063be1f 2012-10-01T17:33:05 remote: Fix mid-block declaration
Carlos Martín Nieto 3230a44f 2012-09-30T10:56:06 remote: support downloading all tags Also honor remote.$name.tagopt = --tags.
Carlos Martín Nieto eb0bd77a 2012-09-29T22:50:33 remote: use the refspec functions to parse, instead of rolling our own The local function works for simple cases, but we shouldn't reinvent the wheel just for us.
Carlos Martín Nieto f70e466f 2012-09-27T11:58:35 remote: add accessors for the autotag setting
Carlos Martín Nieto a37ddf7e 2012-09-16T03:36:03 remote: create tags if we have them Together with include-tag, this make us behave more like git. After a fetch, try to create any tags the remote told us about for which we have objects locally.
Carlos Martín Nieto 24f2f94e 2012-09-15T08:07:24 fetch: use the include-tag capability This tells the remote to send us any tags that point to objects that we are downloading.
Carlos Martín Nieto c1281493 2012-09-30T11:37:53 refs: propagate EEXISTS Indicate whether the error comes from the ref already existing or elsewhere. We always perform the check and this lets the user write more concise code.
Carlos Martín Nieto 3665ba8e 2012-09-27T12:04:41 refspec: add git_refspec__free, remove git_refspec_parse The latter shouldn't be exposed and isn't used, git_refspec__parse supersedes it. Fix a leak in the refspec tests while we're at it.
Sven Strickroth 19aa8416 2012-09-29T21:26:32 Silence MinGW warnings Signed-off-by: Sven Strickroth <email@cs-ware.de>