|
55cbd05b
|
2012-11-08T16:56:34
|
|
Some diff refactorings to help code reuse
There are some diff functions that are useful in a rewritten
checkout and this lays some groundwork for that. This contains
three main things:
1. Share the function diff uses to calculate the OID for a file
in the working directory (now named `git_diff__oid_for_file`
2. Add a `git_diff__paired_foreach` function to iterator over
two diff lists concurrently. Convert status to use it.
3. Move all the string/prefix/index entry comparisons into
function pointers inside the `git_diff_list` object so they
can be switched between case sensitive and insensitive
versions. This makes them easier to reuse in various
functions without replicating logic. As part of this, move
a couple of index functions out of diff.c and into index.c.
|
|
2e3d4b96
|
2012-11-08T16:47:28
|
|
Move pathspec code in separate files
Diff uses a `git_strarray` of path specs to represent a subset
of all files to be processed. It is useful to be able to reuse
this filtering in other places outside diff, so I've moved it
into a standalone set of utilities.
|
|
220d5a6c
|
2012-11-08T16:45:25
|
|
Make iterator ignore eval lazy
This makes it so that the check if a file is ignored will be
deferred until requested on the workdir iterator, instead of
aggressively evaluating the ignore rules for each entry. This
should improve performance because there will be no need to
check ignore rules for files that are already in the index.
|
|
32def5af
|
2012-10-24T17:37:07
|
|
Fix checkout behavior when its hands are tied
So, @nulltoken created a failing test case for checkout that
proved to be particularly daunting. If checkout is given only
a very limited strategy mask (e.g. just GIT_CHECKOUT_CREATE_MISSING)
then it is possible for typechange/rename modifications to leave it
unable to complete the request. That's okay, but the existing code
did not have enough information not to generate an error (at least
for tree/blob conflicts).
This led me to a significant reorganization of the code to handle
the failing case, but it has three benefits:
1. The test case is handled correctly (I think)
2. The new code should actually be much faster than the old code
since I decided to make checkout aware of diff list internals.
3. The progress value accuracy is hugely increased since I added
a fourth pass which calculates exactly what work needs to be
done before doing anything.
|
|
331e7de9
|
2012-10-24T17:32:50
|
|
Extensions to rmdir and mkdir utilities
* Rework GIT_DIRREMOVAL values to GIT_RMDIR flags, allowing
combinations of flags
* Add GIT_RMDIR_EMPTY_PARENTS flag to remove parent dirs that
are left empty after removal
* Add GIT_MKDIR_VERIFY_DIR to give an error if item is a file,
not a dir (previously an EEXISTS error was ignored, even for
files) and enable this flag for git_futils_mkpath2file call
* Improve accuracy of error messages from git_futils_mkdir
|
|
8a328cf4
|
2012-11-09T13:19:32
|
|
Merge pull request #1058 from pwkelley/development
Fixes for two segfaults
|
|
fcd03beb
|
2012-11-09T15:57:32
|
|
Fix a mutex/critical section leak
|
|
55f9837f
|
2012-11-09T21:49:50
|
|
config: make git_config_open_level() work with an empty config
|
|
2f683f00
|
2012-11-09T15:39:25
|
|
Fix uninitialized memory in winhttp subtransport on 64-bit
|
|
2364735c
|
2012-11-09T15:39:10
|
|
Fix implementation of strndup to not overrun
|
|
0f674411
|
2012-11-09T06:16:44
|
|
Merge pull request #1052 from delanne/invalid_read
Valgrind reports Invalid Read when the configuration file contains some empty line
|
|
9d641283
|
2012-11-08T08:06:23
|
|
Merge pull request #1048 from pwkelley/basic_auth
Basic authentication for http and winhttp
|
|
bcad677b
|
2012-11-08T12:28:21
|
|
- Update 'tests-clar/resources/config/config11' in order to reproduce the invalidread with the unittest (just added some \n at the end of the file)
- Fix config_file.c
|
|
8ff2b0c7
|
2012-11-07T16:30:55
|
|
Merge pull request #1039 from erikvanzijst/erik/tag_without_message
Correctly parse tags lacking a description
|
|
345eef23
|
2012-11-07T16:10:57
|
|
Move inet_pton to posix platform-compatibility layer
|
|
d1a69d0f
|
2012-11-06T20:16:53
|
|
Fix compilation for mingw32 and cygwin
inet_pton is available only in windows vista or later,
fixed the issue by reimplementing it using WSAStringToAddress
|
|
11fa8472
|
2012-11-06T11:27:23
|
|
Don't store no_check_cert; fetch it on demand
|
|
2f7538ec
|
2012-11-06T09:36:04
|
|
Fix connection leak in http subtransport
|
|
091361f5
|
2012-11-06T08:52:03
|
|
Basic authentication for http and winhttp
|
|
09cc0b92
|
2012-11-05T11:33:10
|
|
create callback to handle packs from fetch, move the indexer to odb_pack
|
|
a5e85d86
|
2012-11-05T11:06:50
|
|
Merge pull request #1046 from libgit2/empty-remote-url-crash
Bail out of remote loading if the URL would be NULL
|
|
c1cd036e
|
2012-11-05T11:01:00
|
|
'geterr' -> 'giterr'
|
|
065be7a1
|
2012-11-05T10:44:21
|
|
Merge pull request #1044 from dahlbyk/repo/state
Fix state when HEAD is not detached
|
|
f8baece7
|
2012-11-05T10:42:10
|
|
Set GITERR_INVALID when encountering a NULL remote URL
|
|
942a7698
|
2012-11-05T06:54:34
|
|
Merge pull request #1034 from carlosmn/packbuilder-foreach
Let the user grab the packfile as it's being written
|
|
83885891
|
2012-11-04T22:01:24
|
|
Bail out if remote->url would be NULL
This fixes a crash from attempting to invoke git__strdup() against NULL.
|
|
35d255fd
|
2012-11-04T12:13:42
|
|
repo: fix state when HEAD is not detached
|
|
1e99ce9a
|
2012-11-02T11:42:45
|
|
Merge pull request #1042 from pwkelley/progress_cb
Fix bytes_received in fetch tests - we weren't calling the callback
|
|
438906e1
|
2012-11-02T14:34:06
|
|
Fix bytes_received in fetch tests - we weren't calling the callback
|
|
3ae0aad7
|
2012-11-02T10:42:20
|
|
Move error capture to top of giterr_set
|
|
6bb9fea1
|
2012-11-02T10:28:17
|
|
tags: Fixed the tag parser to correctly treat the message field as optional.
This fix makes libgit2 capable of parsing annotated tag objects that lack
the optional message/description field.
Previously, libgit2 treated this field as mandatory and raised a tag_error on
such tags. However, the message field is optional.
An example of such a tag is refs/tags/v2.6.16.31-rc1 in Linux:
$ git cat-file tag refs/tags/v2.6.16.31-rc1
object afaa018cefb6af63befef1df7d8febaae904434f
type commit
tag v2.6.16.31-rc1
tagger Adrian Bunk <bunk@stusta.de> 1162716505 +0100
$
|
|
1362a983
|
2012-11-02T10:00:28
|
|
Merge pull request #1014 from arrbee/diff-rename-detection
Initial implementation of diff rename detection
|
|
473a7a1e
|
2012-11-02T08:43:17
|
|
Merge pull request #1040 from ethomson/index_refactor
Free conflict index entries on removal
|
|
2c087f81
|
2012-11-02T08:40:09
|
|
Merge pull request #1041 from pwkelley/transports
Prefer GetLastError() for GITERR_OS on Win32
|
|
8f624a47
|
2012-11-02T11:30:55
|
|
Prefer GetLastError() for GITERR_OS on Win32
|
|
050cf8b8
|
2012-11-02T01:01:21
|
|
freeing index entries would be helpful
|
|
d13da328
|
2012-11-01T14:18:40
|
|
Merge pull request #1038 from arrbee/doc-fixes
Improve docs, examples, warnings
|
|
b90500f0
|
2012-11-01T14:08:30
|
|
Improve docs, examples, warnings
This improves docs in some of the public header files, cleans
up and improves some of the example code, and fixes a couple
of pedantic warnings in places.
|
|
1e808f9c
|
2012-11-01T20:28:28
|
|
index: Add `git_index_new`
|
|
43eeca04
|
2012-11-01T20:24:43
|
|
index: Fix tests
|
|
276ea401
|
2012-11-01T20:15:53
|
|
index: Add git_index_write_tree
|
|
8ff0f325
|
2012-10-31T22:26:57
|
|
index: Switch to git_futils_filestamp
|
|
c902f5a0
|
2012-11-01T12:11:24
|
|
Update of text stats calculation
Do not interpret 0x85 as Next Line (NEL)
char when gathering statistics for a text file.
|
|
7ae73e94
|
2012-11-01T09:15:29
|
|
Merge pull request #1030 from pwkelley/transports
Reorganize transport architecture
|
|
ff830366
|
2012-11-01T12:07:42
|
|
Http: Set an error for invalid content-type
|
|
0ccfc63b
|
2012-11-01T10:29:30
|
|
Improve consistency of WinHTTP request headers
|
|
41fb1ca0
|
2012-10-29T13:41:14
|
|
Reorganize transport architecture (squashed 3)
|
|
b4b935d8
|
2012-10-31T10:43:08
|
|
packbuilder: add accessors for the number of total and written objects
|
|
3dfed9cb
|
2012-10-31T10:26:04
|
|
packbuilder: add git_packbuilder_foreach
Let the user get each object as a buffer+size pair so they can handle
the packfile content as they need to.
|
|
003808b3
|
2012-10-31T20:52:16
|
|
Merge branch 'config-refresh' into development
|
|
c1f61af6
|
2012-10-31T20:52:01
|
|
I LIKE THESE NAMES
|
|
c8b511f3
|
2012-10-31T11:26:12
|
|
Better naming for file timestamp/size checker
|
|
a9db123b
|
2012-10-31T10:14:13
|
|
Checkout: remove duplicate 100% progress report
|
|
c48e8700
|
2012-10-31T10:13:57
|
|
Ensure that non-error is not propagated
|
|
744cc03e
|
2012-10-30T12:10:36
|
|
Add git_config_refresh() API to reload config
This adds a new API that allows users to reload the config if the
file has changed on disk. A new config callback function to
refresh the config was added.
The modified time and file size are used to test if the file needs
to be reloaded (and are now stored in the disk backend object).
In writing tests, just using mtime was a problem / race, so I
wanted to check file size as well. To support that, I extended
`git_futils_readbuffer_updated` to optionally check file size in
addition to mtime, and I added a new function `git_filebuf_stats`
to fetch the mtime and size for an open filebuf (so that the
config could be easily refreshed after a write).
Lastly, I moved some similar file checking code for attributes
into filebuf. It is still only being used for attrs, but it
seems potentially reusable, so I thought I'd move it over.
|
|
efde4225
|
2012-10-30T12:04:28
|
|
Merge pull request #1017 from arrbee/diff-patch-to-str
Add git_diff_patch_to_str API
|
|
c4a9ded0
|
2012-10-30T12:03:22
|
|
Merge pull request #1026 from nulltoken/repo/state
repo: enhance git_repository_state() detection
|
|
6c21358a
|
2012-10-30T11:51:58
|
|
Merge pull request #1029 from ethomson/index_refactor
Index changes
|
|
6cfbbf7e
|
2012-10-30T18:50:59
|
|
Fix a couple of warnings
|
|
db106d01
|
2012-10-30T09:40:50
|
|
Move rename detection into new file
This improves the naming for the rename related functionality
moving it to be called `git_diff_find_similar()` and renaming
all the associated constants, etc. to make more sense.
I also moved the new code (plus the existing `git_diff_merge`)
into a new file `diff_tform.c` where I can put new functions
related to manipulating git diff lists.
This also updates the implementation significantly from the
last revision fixing some ordering issues (where break-rewrite
needs to be handled prior to copy and rename detection) and
improving config option handling.
|
|
f45ec1a0
|
2012-10-29T20:04:21
|
|
index refactoring
|
|
81eecc34
|
2012-10-29T13:34:14
|
|
Fetch: don't clobber received count
This memset was being reached after the entire packfile under
WinHttp, so the byte count was being lost for small repos.
|
|
8a1479a5
|
2012-10-29T12:57:04
|
|
Merge pull request #796 from nulltoken/topic/git-stash
Stash
|
|
31966d20
|
2012-10-27T09:30:03
|
|
repo: enhance git_repository_state() detection
|
|
a0ce87c5
|
2012-10-26T13:43:13
|
|
Add network transfer callbacks on Windows
|
|
e4c64cf2
|
2012-10-08T20:07:55
|
|
stash: add git_stash_drop()
|
|
23388413
|
2012-10-04T15:13:43
|
|
stash: add git_stash_foreach()
|
|
590fb68b
|
2012-10-04T13:47:45
|
|
stash: add git_stash_save()
|
|
4ea0a0ca
|
2012-06-29T22:59:58
|
|
refs: add GIT_REFS_STASH_FILE define
|
|
b1be9dd0
|
2012-10-03T12:09:17
|
|
index: introduce git_index_owner()
|
|
1f87fa35
|
2012-10-09T18:29:26
|
|
reflog: fix bogus removal of reflog entries
|
|
27e3c583
|
2012-10-03T15:12:42
|
|
reflog: create reflog and its directory structure
|
|
d2aa6de7
|
2012-10-03T13:56:13
|
|
reflog: Make git_reflog_free() accept null param
|
|
cb7180a6
|
2012-10-25T11:48:39
|
|
Add git_diff_patch_print
This adds a `git_diff_patch_print()` API which is more like the
existing API to "print" a patch from an entire `git_diff_list`
but operates on a single `git_diff_patch` object.
Also, it rewrites the `git_diff_patch_to_str()` API to use that
function (making it very small).
|
|
3943dc78
|
2012-10-25T11:12:56
|
|
Check errors while generating diff patch string
|
|
1b934689
|
2012-10-25T10:55:03
|
|
Merge pull request #925 from nulltoken/topic/moving-branch-updates-config
Updates config upon moving and deletion of branches
|
|
505f37b4
|
2012-10-25T19:22:35
|
|
config: Only dereference value on success
|
|
67dad09b
|
2012-10-25T09:59:49
|
|
Remove inline hint
|
|
1fc375e6
|
2012-10-25T09:02:55
|
|
Fix Windows build
Pedantic ordering of GIT_UNUSED vs. variable declarations.
|
|
fcccf304
|
2012-09-09T20:39:13
|
|
remote: introduce git_remote_rename()
|
|
3a14d3e2
|
2012-10-01T11:58:15
|
|
buf: introduce git_buf_splice()
|
|
fb39b3a5
|
2012-10-02T14:36:59
|
|
refspec: introduce git_refspec__serialize()
|
|
4fe5520a
|
2012-09-17T17:46:58
|
|
remote: remove some code duplication
|
|
e497b16c
|
2012-09-17T14:22:18
|
|
remote: prevent from saving a nameless remote
|
|
aba70781
|
2012-09-11T18:11:26
|
|
config: introduce git_config_rename_section()
|
|
383f164a
|
2012-09-07T17:55:30
|
|
branch: rename config section upon moving
|
|
0b98a8a4
|
2012-09-07T15:13:11
|
|
branch: remove config section upon deletion
|
|
1eb8cd7f
|
2012-10-25T08:16:13
|
|
Merge pull request #990 from ben/clone-callbacks
Progress callbacks
|
|
93cf7bb8
|
2012-10-24T20:56:32
|
|
Add git_diff_patch_to_str API
This adds an API to generate a complete single-file patch text
from a git_diff_patch object.
|
|
03bdb2ad
|
2012-10-23T16:32:01
|
|
GIT_EUNMERGED
|
|
632d8b23
|
2012-10-23T15:42:09
|
|
reset changes for merge
|
|
1e3b8ed5
|
2012-10-24T14:07:07
|
|
Remove 'bytes' param from git_remote_download
|
|
7d222e13
|
2012-10-24T13:29:14
|
|
Network progress: rename things
git_indexer_stats and friends -> git_transfer_progress*
Also made git_transfer_progress members more sanely
named.
|
|
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.
|
|
81e7b10a
|
2012-10-23T13:43:28
|
|
Merge pull request #1012 from carlosmn/libcrypto-sha
Use libcrypto's SHA-1 implementation when linking to it
|
|
7205a4d9
|
2012-10-23T19:30:04
|
|
Use libcrypto's SHA-1 implementation when linking to it
libcryto's SHA-1 implementation is measurably better than the one that
ships with the library. If we link to it for HTTPS support already,
use that implementation instead.
Testing on a ~600MB of the linux repository, this reduces indexing
time by 40% and removes the hashing from the top spot in the perf
output.
|
|
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
|
|
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.
|
|
8a89aa1f
|
2012-10-22T12:04:48
|
|
Merge pull request #963 from carlosmn/remote-save-autotag
Save the autotag configuration for remotes
|
|
40846f3d
|
2012-10-22T10:51:43
|
|
Merge pull request #1004 from nulltoken/error/GIT_EORPHANEDHEAD
More orphaned head love
|