summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Merge pull request #1317 from libgit2/blameRussell Belfer2013-11-045-0/+1246
|\ \ \ | | | | | | | | Blame Canada
| * | | Adjust for diff API changesBen Straub2013-10-282-26/+19
| | | |
| * | | Merge remote-tracking branch 'libgit2/development' into blameBen Straub2013-10-2860-1429/+2908
| |\ \ \
| * | | | :heart: boolBen Straub2013-10-282-3/+3
| | | | |
| * | | | Mmmm, GIT_FLEX_ARRAYBen Straub2013-10-281-1/+1
| | | | |
| * | | | Avoid temporary object in lookup routineBen Straub2013-10-281-8/+7
| | | | |
| * | | | Move flag dependencies into docs and code.Ben Straub2013-10-101-0/+8
| | | | |
| * | | | Include signatures in blame hunksBen Straub2013-10-101-0/+4
| | | | |
| * | | | Merge branch 'development' into blameBen Straub2013-10-0324-424/+526
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: include/git2.h
| * \ \ \ \ Merge branch 'development' into blameBen Straub2013-09-2552-896/+1865
| |\ \ \ \ \
| * | | | | | Blame: minor cleanupBen Straub2013-09-252-4/+4
| | | | | | |
| * | | | | | Clean up ported codeBen Straub2013-09-213-126/+142
| | | | | | |
| * | | | | | Simplify blob loading logicBen Straub2013-09-211-22/+17
| | | | | | |
| * | | | | | Clean up old methods, format long linesBen Straub2013-09-212-54/+72
| | | | | | | | | | | | | | | | | | | | | Added back the line index. We'll need it later.
| * | | | | | git_blame is a scoreboardBen Straub2013-09-214-152/+132
| | | | | | |
| * | | | | | Trim fat from git_blame structBen Straub2013-09-202-18/+0
| | | | | | |
| * | | | | | Add typedefs for internal structsBen Straub2013-09-203-78/+82
| | | | | | |
| * | | | | | Detect boundaries, support limiting commit rangeBen Straub2013-09-203-3/+17
| | | | | | |
| * | | | | | blame: allow restriction to line rangeBen Straub2013-09-191-0/+11
| | | | | | |
| * | | | | | Stop being crazy about freeing memoryBen Straub2013-09-191-26/+2
| | | | | | |
| * | | | | | Check errors from libgit2 callsBen Straub2013-09-171-13/+10
| | | | | | |
| * | | | | | Port blame from git.gitBen Straub2013-09-165-0/+1249
| | | | | | |
* | | | | | | Merge pull request #1937 from scunz/checkout_assertVicent Martí2013-11-041-19/+18
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Don't assert in git_checkout_tree
| * | | | | | | Checkout: git_checkout_head is git_checkout_tree without a treeishSascha Cunz2013-11-021-13/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last commit taught git_checkout_tree to actually do something meaningfull, when treeish was NULL. This lets us rewrite git_checkout_head to simply call git_checkout_tree without giving it a treeish.
| * | | | | | | Checkout: Don't assert if treeish is NULLSascha Cunz2013-11-021-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In git_checkout_tree, the first check tests if either repo or treeish is NULL and says that eithor of them has to have a valid value. But there is no code to handle the treeish == NULL case. So, do something meaningful in that case: use HEAD instead.
| * | | | | | | Checkout: Unifiy const-ness of `opts` parameterSascha Cunz2013-11-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since all 3 checkout APIs perform the same operation with the options, all of them should use the same const-ness.
* | | | | | | | Merge pull request #1929 from libgit2/rb/misc-diff-fixesVicent Martí2013-11-047-46/+131
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / |/| | | | | | | Fix some observed problems with incorrect diffs
| * | | | | | | Fix --assume-unchanged supportRussell Belfer2013-11-012-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was never really working right because we were checking the wrong flag and not checking it in all the places that we need to be checking it. I finally got around to writing a test and adding actual support for it.
| * | | | | | | More tests and fixed for merging reversed diffsRussell Belfer2013-11-011-14/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were a lot more cases to deal with to make sure that our merged (i.e. workdir-to-tree-to-index) diffs were matching the output of core Git.
| * | | | | | | Add git_diff_options_init helperRussell Belfer2013-11-011-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes the static initializer for git_diff_options cannot be used and since setting them to all zeroes doesn't actually work quite right, this adds a new helper for that situation. This also adds an explicit new value to the submodule settings options to be used when those enums need static initialization.
| * | | | | | | Convert git_index_read to have a "force" flagRussell Belfer2013-11-014-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a little more intuitive than the turned-around option that I originally wrote.
| * | | | | | | Make diff and status perform soft index reloadRussell Belfer2013-11-015-18/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes `git_index_read` to have two modes - a hard index reload that always resets the index to match the on-disk data (which was the old behavior) and a soft index reload that uses the timestamp / file size information and only replaces the index data if the file on disk has been modified. This then updates the git_status code to do a soft reload unless the new GIT_STATUS_OPT_NO_REFRESH flag is passed in. This also changes the behavior of the git_diff functions that use the index so that when an index is not explicitly passed in (i.e. when the functions call git_repository_index for you), they will also do a soft reload for you. This intentionally breaks the file signature of git_index_read because there has been some confusion about the behavior previously and it seems like all existing uses of the API should probably be examined to select the desired behavior.
| * | | | | | | Fix some of the glaring errors in GIT_DIFF_REVERSERussell Belfer2013-11-012-17/+34
| | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These changes fix the basic problem with GIT_DIFF_REVERSE being broken for text diffs. The reversed diff entries were getting added to the git_diff correctly, but some of the metadata was kept incorrectly in a way that prevented the text diffs from being generated correctly. Once I fixed that, it became clear that it was not possible to merge reversed diffs correctly. This has a first pass at fixing that problem. We probably need more tests to make sure that is really fixed thoroughly.
* | | | | | | remote: don't write too much when dealing with multivarsCarlos Martín Nieto2013-11-021-6/+12
| |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to move `data_start` forward, which is wrong as that needs to point to the beginning of the buffer in order to perform size calculations. Introduce a `write_start` variable which indicates where we should start writing from, which is what the `data_start` was being wrongly reused to be.
* | | | | | preserve windows error numbers as wellEdward Thomson2013-11-012-2/+26
|/ / / / /
* | | | | Merge pull request #1933 from libgit2/vmg/gcc-warningsRussell Belfer2013-11-019-21/+43
|\ \ \ \ \ | | | | | | | | | | | | Warnings for Windows x64 (MSVC) and GCC on Linux
| * | | | | iconv: Do not fake an API when iconv is not availableVicent Marti2013-11-013-12/+35
| | | | | |
| * | | | | checkout: Remove unused vectorVicent Marti2013-11-011-1/+0
| | | | | |
| * | | | | array: Wrap `array_alloc` as a single statementVicent Marti2013-11-011-2/+2
| | | | | |
| * | | | | pack: `__object_header` always returns unsigned valuesVicent Marti2013-11-013-5/+4
| | | | | |
| * | | | | Fix warning on win64Linquize2013-11-014-6/+7
| | | | | |
* | | | | | Merge pull request #1918 from libgit2/cmn/indexer-namingVicent Martí2013-11-015-43/+43
|\ \ \ \ \ \ | | | | | | | | | | | | | | indexer: remove the stream infix
| * | | | | | indexer: remove the stream infixCarlos Martín Nieto2013-10-305-43/+43
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was there to keep it apart from the one which read in from a file on disk. This other indexer does not exist anymore, so there is no need for anything other than git_indexer to refer to it. While here, rename _add() function to _append() and _finalize() to _commit(). The former change is cosmetic, while the latter avoids talking about "finalizing", which OO languages use to mean something completely different.
* | | | | | config_file: Style fixesVicent Marti2013-11-011-9/+6
| | | | | |
* | | | | | Merge remote-tracking branch 'drodriguez/fix-remote-save' into developmentVicent Marti2013-11-013-3/+111
|\ \ \ \ \ \ | |_|/ / / / |/| | | | |
| * | | | | Set new multivar values using unmatcheable regexp.Daniel Rodríguez Troitiño2013-11-011-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Seems that regexp in Mac OS X and Linux were behaving differently: while in OS X the empty string didn't match any value, in Linux it was matching all of them, so the the second fetch refspec was overwritting the first one, instead of creating a new one. Using an unmatcheable regular expression solves the problem (and seems to be portable).
| * | | | | Fix memory leaks.Daniel Rodríguez Troitiño2013-11-011-0/+2
| | | | | |
| * | | | | Fix saving remotes with several fetch/push ref specs.Daniel Rodríguez Troitiño2013-11-013-3/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At some moment git_config_delete_entry lost the ability to delete one entry of a multivar configuration. The moment you had more than one fetch or push ref spec for a remote you will not be able to save that remote anymore. The changes in network::remote::remotes::save show that problem. I needed to create a new git_config_delete_multivar because I was not able to remove one or several entries of a multivar config with the current API. Several tries modifying how git_config_set_multivar(..., NULL) behaved were not successful. git_config_delete_multivar is very similar to git_config_set_multivar, and delegates into config_delete_multivar of config_file. This function search for the cvar_t that will be deleted, storing them in a temporal array, and rebuilding the linked list. After calling config_write to delete the entries, the cvar_t stored in the temporal array are freed. There is a little fix in config_write, it avoids an infinite loop when using a regular expression (case for the multivars). This error was found by the test network::remote::remotes::tagopt.
* | | | | | Prevent another segfault from bad URLBen Straub2013-10-312-6/+7
| | | | | |
* | | | | | Prevent segfault with a badly-formed URLBen Straub2013-10-311-3/+4
|/ / / / /