src


Log

Author Commit Date CI Message
Russell Belfer 3d1c9f61 2013-05-09T06:45:06 Fix git_repository_message docs This clarifies the docs for git_repository_message and also adds to the tests to explicitly check NUL termination of data when the output buffer is smaller than the message size. There is a minor behavior change so that a non-NULL output buffer will always be NUL terminated (at length zero) if an error occurs.
Vicent Martí 503dd0f3 2013-05-09T05:43:25 Merge pull request #1560 from carlosmn/ref-dwim Expose git_reference_dwim
Vicent Martí ddc5c054 2013-05-09T05:42:37 Merge pull request #1561 from arrbee/fix-windows-diff-eofnl Fix windows diff eofnl error
Russell Belfer eb05b114 2013-05-07T22:45:01 Fix dumb type in time comparison
Vicent Martí af795759 2013-05-07T15:09:11 Merge pull request #1552 from carlosmn/config-helpers Config helpers for global/xdg config files
Carlos Martín Nieto 98d633cc 2013-05-07T23:28:21 Expose git_reference_dwim Extract this function out of the rev-parse code to be able to DWIM a reference instead of its target.
Carlos Martín Nieto a4b75dcf 2013-05-06T21:51:25 repo: unconditionally create a global config backend When a repository is initialised, we need to probe to see if there is a global config to load. If this is not the case, the user isn't able to write to the global config without creating the backend and adding it themselves, which is inconvenient and overly complex. Unconditionally create and add a backend for the global config file regardless of whether it exists as a convenience for users. To enable this, we allow creating backends to files that do not exist yet, changing the semantics somewhat, and making some tests invalid.
Carlos Martín Nieto 5d831887 2013-05-07T00:10:02 config: convenience function to open global/xdg The rules for which one to open is a bit silly, so let's make it easier for our users.
Russell Belfer 0f938c6b 2013-05-07T09:59:53 Fix win32 type warnings
Carlos Martín Nieto 505b5d0c 2013-05-07T16:01:22 remote: correctly interpret tagopt '--tags' When tagopt is set to '--tags', we should only take the default tags refspec into account and ignore any configured ones. Bring the code into compliance.
Vicent Martí 33665410 2013-05-07T08:00:44 Merge pull request #1556 from arrbee/diff-patch-fixes Diff patch bug fixes
Russell Belfer c2f602f8 2013-05-07T07:15:39 Fix line numbering for patches with eofnl When a patch contained an eofnl change (i.e. the last line either gained or lost a newline), the oldno and newno line number values for the lines in the last hunk of the patch were not useful. This makes them behave in a more expected manner.
Russell Belfer e35e2684 2013-05-07T04:32:17 Add GIT_DIFF_LINE_CONTEXT_EOFNL This adds a new line origin constant for the special line that is used when both files end without a newline. In the course of writing the tests for this, I was having problems with modifying a file but not having diff notice because it was the same size and modified less than one second from the start of the test, so I decided to start working on nanosecond timestamp support. This commit doesn't contain the nanosecond support, but it contains the reorganization of maybe_modified and the hooks so that if the nanosecond data were being read by stat() (or rather being copied by git_index_entry__init_from_stat), then the nsec would be taken into account. This new stuff could probably use some more tests, although there is some amount of it here.
Carlos Martín Nieto 1c92f109 2013-05-07T01:32:10 Merge pull request #1551 from nvloff/set_upstream_local_branch fix git_branch_set_upstream for local branches
Sebastian Bauer 7f8cf6fe 2013-05-07T09:15:12 Fixed qsort_r() problem when targeting AmigaOS. We fall back to the libgit2-provided insert sort as done for other platforms.
Nikolai Vladimirov 3d42e9a3 2013-05-06T20:32:20 git_branch_set_upstream with local branches Currently git_branch_set_upstream when passed a local branch creates invalid configuration, for ex. if we setup branch 'tracking_master' to track local 'master' libgit2 generates the following config ``` [branch "track_master"] remote = . merge = .refs/heads/track_master ``` The merge value is invalid and calling git_branch_upstream on 'tracking_master' results in invalid reference error. It should do: ``` [branch "track_master"] remote = . merge = refs/heads/master ```
Vicent Martí 3405f787 2013-05-06T06:51:21 Merge pull request #1547 from ethomson/win32_stat p_stat() should follow symlinks on windows
Vicent Martí 03c28d92 2013-05-06T06:45:53 Merge pull request #1526 from arrbee/cleanup-error-return-without-msg Make sure error messages are set for most error returns
Vicent Martí d5e5bbd7 2013-05-06T06:45:40 Merge pull request #1524 from jamill/clone_tagopts By default do not set tagopt when cloning
Vicent Martí 450a78bf 2013-05-06T06:33:02 Merge pull request #1545 from ethomson/checkout_dirs_in_use allow checkout to proceed when a dir to be removed is in use (win32)
nulltoken 467cbec7 2013-05-05T16:48:34 commit: make create_from_oids() accept plain oid
nulltoken ce72e399 2013-05-05T16:45:38 commit: guard create() against not owned trees
Edward Thomson 00a4c479 2013-05-04T12:04:39 p_stat() should follow symlinks on windows
Jameson Miller 6f748f38 2013-05-04T12:14:40 Do not write tagopt configuration option on clone by default
Edward Thomson e09d18ee 2013-05-03T18:39:44 allow checkout to proceed when a dir to be removed is in use (win32)
Vicent Marti dfec726b 2013-05-03T23:30:54 odb: Do not error out if an alternate ODB is missing
Edward Thomson d8041638 2013-05-02T17:22:13 fix some leaks
Edward Thomson 4e7c1560 2013-05-02T14:58:40 puns are not funny; type punning especially so
Russell Belfer 0cce210a 2013-05-02T10:36:58 Use assert for peel target type check
Vicent Martí af7689ea 2013-05-02T09:50:34 Merge pull request #1535 from carlosmn/pack-threading Switch to index_version as "git_pack_file is ready" flag
Carlos Martín Nieto 0ddfcb40 2013-05-02T18:06:14 Switch to index_version as "git_pack_file is ready" flag We use p->index_map.data to check whether the struct has been set up and all the information about the index is stored there. This variable gets set up halfway through the setup process, however, and a thread can come along and use fields that haven't been written to yet. Crucially, pack_entry_find_offset() needs to read the index version (which is written after index_map) to know the offset and stride length to pass to sha1_entry_pos(). If these values are wrong, assertions in it will fail, as it will be reading bogus data. Make index_version the last field to be written and switch from using p->index_map.data to p->index_version as "git_pack_file is ready" flag as we can use it to know if every field has been written.
Jeff King a591ed3e 2013-05-02T12:06:46 refdb_fs: respect PEELING_STANDARD We only set our negative flag for PEELING_FULL; we can fall back to the lesser PEELING_STANDARD if our ref is in the refs/tags/ hierarchy.
Vicent Marti 822645f6 2013-05-02T17:48:49 refdb_fs: Only strstr the traits line
Vicent Marti 1022db2b 2013-05-02T17:42:09 refdb_fs: Traits are always surrounded by spaces This makes parsing easier! :p
Vicent Marti f69db390 2013-05-02T17:29:58 refdb_fs: store "cannot be peeled" flag for packed refs Fixes #1532
Vicent Marti 3bb00f33 2013-05-02T17:17:46 refdb_fs: implement the fully-peeled trait
Carlos Martín Nieto 34bd5999 2013-05-02T17:14:05 Revert "Protect sha1_entry_pos call with mutex" This reverts commit 8c535f3f6879c6796d8107d7eb80dd8b2105621b.
Jeff King 7edb9071 2013-05-02T11:07:20 refdb_fs: do not require peeled packed refs to be tags Older versions of git would only write peeled entries for items under refs/tags/. Newer versions will write them for all refs, and we should be prepared to handle that.
Russell Belfer 8c535f3f 2013-05-02T03:34:56 Protect sha1_entry_pos call with mutex There is an occasional assertion failure in sha1_entry_pos from pack_entry_find_index when running threaded. Holding the mutex around the code that grabs the index_map data and processes it makes this assertion failure go away.
Russell Belfer 81b7dec4 2013-05-02T03:06:34 Fix some compile warnings and trailing whitespace
Russell Belfer 9d2f841a 2013-05-02T03:03:54 Add extra locking around packfile open We were still seeing a few issues in threaded access to packs. This adds extra locks around the opening of the mwindow to avoid a different race.
Russell Belfer b60d95c7 2013-05-01T15:55:54 clarify error propogation
Russell Belfer 2f28219c 2013-05-01T15:53:12 clarify where error message is set
Russell Belfer 52c52737 2013-05-01T15:51:30 Clear error msg when we eat error silently
Russell Belfer f470b00b 2013-05-01T15:48:40 Fix one error not reported in revparse There are many paths through revparse that may return an error code without reporting an error, I believe. This fixes one of them. Because of the backtracking in revparse, it is pretty complicated to fix the others.
Russell Belfer 1a9e406c 2013-05-01T15:47:37 minor missing error message
Russell Belfer bf6bebe2 2013-05-01T15:23:40 Factor out some code that needed to clear errors A number of places were looking up option config values and then not clearing the error codes if the values were not found. This moves the repeated pattern into a shared routine and adds the extra call to giterr_clear() when needed.
Russell Belfer 41e93563 2013-05-01T15:08:12 Error messages for a couple other boundary conditions
Russell Belfer 62caf3f3 2013-05-01T15:01:47 Report some errors returnable by push
Russell Belfer f063f578 2013-05-01T14:48:35 Catch some odd odb backend corner case errors There are some cases, particularly where no loaded ODB backends support a particular operation, where we would return an error code without having set an error. This catches those cases and reports that no ODB backends support the operation in question.
Russell Belfer 8915a140 2013-05-01T14:23:01 Report a couple object error conditions
Russell Belfer 734c6fc1 2013-05-01T14:15:55 Report errors finding notes
Russell Belfer de19c4a9 2013-05-01T14:00:20 Set error when no merge base is found
Russell Belfer e830c020 2013-05-01T13:50:39 Report stat error when checking if file modified
Russell Belfer 69c50f4c 2013-05-01T13:47:00 Merge pull request #1527 from ethomson/checkout_allow_empty_dirs allow empty dirs to exist when doing checkout
Russell Belfer 52c102b7 2013-05-01T13:43:48 More care reporting diff patch iteration errors
Russell Belfer 3f663178 2013-05-01T13:38:56 More care catching and setting config errors
Vicent Marti 8cddf9b8 2013-05-01T18:21:10 refdb: Properly load namespaces
Edward Thomson 0cc7d8df 2013-05-01T09:50:40 allow empty dirs to exist when doing checkout
Vicent Marti e1807113 2013-05-01T15:31:23 merge: Warning noise
Vicent Marti 2ba55c1f 2013-05-01T15:20:08 refdb: Proper namespace root
Vicent Martí 758e50c5 2013-05-01T06:18:09 Merge pull request #1389 from ethomson/merge_trees Merge trees
Russell Belfer 155ee751 2013-05-01T05:34:01 Add error messages for failed submodule lookup
Russell Belfer 46779411 2013-05-01T05:32:10 fix typo
Russell Belfer ae99f5e2 2013-05-01T04:57:24 Make sure error messages get set
Russell Belfer f6f48f90 2013-05-01T04:57:05 Simplify error reporting
Russell Belfer 3e199f42 2013-05-01T04:18:46 Set error message for branch functions There were a couple of places where an error was being returned from branch related code but no error message was being set.
Vicent Martí cfcdbc10 2013-05-01T03:03:17 Merge pull request #1523 from libgit2/vmg/namespaces Namespace support
Edward Thomson 75d1c8c6 2013-04-30T17:33:11 move NAME and REUC extensions to sys/
Edward Thomson 0462fba5 2013-04-30T14:56:41 renames!
Edward Thomson bec65a5e 2013-04-01T22:16:21 merge!
Vicent Marti bade5194 2013-04-30T21:02:13 lol namespaces
Russell Belfer 5fa7e469 2013-04-30T04:13:39 Fix some formatting inconsistency
Russell Belfer e26b14c0 2013-04-26T15:35:47 Update diff handling of untracked directories When diff encounters an untracked directory, there was a shortcut that it took which is not compatible with core git. This makes the default behavior no longer take that shortcut and instead look inside the untracked directory to see if there are any untracked files within it. If there are not, then the directory is treated as an ignore directory instead of an untracked directory. This has implications for the git_status APIs.
Russell Belfer fdb3034e 2013-04-25T14:57:13 Reorganize diff code into functions In preparation for more changes to the internal diff logic, it seemed wise to split the very large git_diff__from_iterators into separate functions that handle the four main cases (unmatched old item, unmatched new item, unmatched new directory, and matched old and new items). Hopefully this will keep the logic easier to follow even as more cases have to be added to this code.
Vicent Marti 7dcda3aa 2013-04-30T13:19:02 object: haha
Vicent Marti 0b726701 2013-04-30T13:13:38 object: Explicitly define helper API methods for all obj types
Vicent Martí cd2ed9f0 2013-04-30T04:02:52 Merge pull request #1518 from arrbee/export-oid-comparison Remove most inlines from the public API
Vicent Martí d76fb20e 2013-04-30T03:29:48 Merge pull request #1520 from carlosmn/nth-refspec Add refspec list accessors
Russell Belfer 0a1755c0 2013-04-30T03:15:45 Catch issue in config set with no config file This prevents a segfault when setting a value in the config of a repository that doesn't have a config file.
Carlos Martín Nieto 9c5d4b2e 2013-04-30T12:05:16 remote: fix a leak when dwim'ing refspecs
Carlos Martín Nieto 1ffd0806 2013-04-30T11:18:16 remote: add resfpec list accessors Bring back a way of acessing the git_refspec* from a remote. Closes #1514
Carlos Martín Nieto 8d39f2a7 2013-04-30T10:55:17 refspec: add direction accessor
Russell Belfer 203d5b0e 2013-04-29T18:20:58 Some cleanups Removed useless prototype and renamed object typecast functions declaration macro.
Russell Belfer e4af0f00 2013-04-29T18:15:43 Add new src/oid.h
Russell Belfer d7761102 2013-04-29T14:22:06 Standardize cast versions of git_object accessors This removes the GIT_INLINE versions of the simple git_object accessors and standardizes them with a helper macro in src/object.h to build the function bodies.
Russell Belfer b7f167da 2013-04-29T13:52:12 Make git_oid_cmp public and add git_oid__cmp
Vicent Martí 41578510 2013-04-29T13:30:31 Merge pull request #1511 from carlosmn/refspec-shorthand dwim shorthand refspecs for fetch
Edward Thomson c8a4e8a5 2013-04-29T11:14:56 don't use uninitialized struct stat in win32
Russell Belfer aa8f0101 2013-04-29T08:59:46 Add git_oid_strcmp and use it for git_oid_streq Add a new git_oid_strcmp that compares a string OID with a hex oid for sort order, and then reimplement git_oid_streq using it. This actually should speed up git_oid_streq because it only reads as far into the string as it needs to, whereas previously it would convert the whole string into an OID and then use git_oid_cmp.
Russell Belfer 8564a022 2013-04-29T08:51:24 Fix fragile git_oid_ncmp git_oid_ncmp was making some assumptions about the length of the data - this shifts the check to the top of the loop so it will work more robustly, limits the max, and adds some tests to verify the functionality.
Russell Belfer 0c72248b 2013-04-29T07:34:13 Introduce git_oid_compare, an exported oid cmp
Carlos Martín Nieto 51e4da6d 2013-04-29T01:49:40 push: don't send a packfile when only issuing delete commands For update and create commands where all the objects are known to exist in the remote, we must send an empty packfile. However, if all we issue are delete commands, no packfile must be sent. Take this into consideration for push.
Carlos Martín Nieto d8488457 2013-04-28T16:26:55 remote: dwim the refspecs according to the remote's advertised refs As git allows you to store shorthand refspecs in the configuration, we need to do this ourselves.
Carlos Martín Nieto 528a4e24 2013-04-28T14:16:45 Parse shorthand refspecs as valid Relax the ONELEVEL ref naming rules so the refspec parsing code can ask for 'master' to be considered valid.
Edward Thomson eb63fda2 2013-04-25T11:52:17 git_atomic_ssize for 64-bit atomics only on 64-bit platforms
Vicent Marti 879458e7 2013-04-24T15:52:33 repo: Add `git_repository__cleanup`
Russell Belfer 687db88f 2013-04-22T16:45:36 Make sure diff output is cleared on error
Russell Belfer b1ff7004 2013-04-22T16:25:57 Improve diff config options handling This makes diff use the cvar cache for config options where possible, and also adds support for a number of other config options to diff including "diff.context", "diff.ignoreSubmodules", "diff.noprefix", "diff.mnemonicprefix", and "core.abbrev". To make this natural, this involved a rearrangement of the code that allocates the diff object vs. the code that initializes it based on the combination of options passed in by the user and read from the config. This commit includes tests for most of these new options as well.
Russell Belfer 6be368bf 2013-04-22T16:24:53 Clear repo config cache when cfgs are set This is a conservative change, but it seemed like the only safe thing to do -- i.e. clear the cvar cache when a config gets set.