Commit Graph

9426 Commits

Author SHA1 Message Date
Matthew Plough
38dc994031 Fix #3094 - improve use of portable size_t/ssize_t format specifiers.
The header src/cc-compat.h defines portable format specifiers PRIuZ, PRIdZ, and PRIxZ. The original report highlighted the need to use these specifiers in examples/network/fetch.c.  For this commit, I checked all C source and header files not in deps/ and transitioned to the appropriate format specifier where appropriate.
2015-07-28 08:25:23 +02:00
Carlos Martín Nieto
34ff34fd6a filter: make sure to close the stream even on error
When the stream list init or write fail, we must also make sure to close
the stream, as that's the function contract.
2015-07-28 08:25:06 +02:00
Carlos Martín Nieto
678c4aacf5 index: allow add_bypath to update submodules
Similarly to how git itself does it, allow the index update operation to
stage a change in a submodule's HEAD.
2015-07-28 08:24:55 +02:00
Carlos Martín Nieto
aafaa491ba blob: fail to create a blob from a dir with EDIRECTORY
This also affects `git_index_add_bypath()` by providing a better error
message and a specific error code when a directory is passed.
2015-07-28 08:24:55 +02:00
Carlos Martín Nieto
7624b91fd3 errors: add EDIRECTORY
This is to be returned when the operation which the user asked for is
not possible to do on a directory.
2015-07-28 08:24:55 +02:00
Carlos Martín Nieto
e48dd86eca submodule: lookup the submodule by path if available
If we get the path from the gitmodules file, look up the submodule we're
interested in by path, rather then by name. Otherwise we might get
duplicate results.
2015-07-28 08:22:59 +02:00
Carlos Martín Nieto
1207b8f2a7 submdule: reproduce double-reporting of a submodule in foreach
When we rename a submodule, we should be merging two sets of information
based on whether their path is the same. We currently only deduplicate
on equal name, which causes us to double-report.
2015-07-28 08:22:59 +02:00
Edward Thomson
f2dc6b77ee khash: add eol so picky compilers stop warning 2015-07-28 08:22:26 +02:00
Edward Thomson
a4743de873 xdiff: cleanup some warnings 2015-07-28 08:21:47 +02:00
Edward Thomson
75d0b81abf xdiff: upgrade to core git 2.4.5
Upgrade xdiff to version used in core git 2.4.5 (0df0541).

Corrects an issue where an LF is added at EOF while applying
an unrelated change (ba31180), cleans up some unused code (be89977 and
e5b0662), and provides an improved callback to avoid leaking internal
(to xdiff) structures (467d348).

This also adds some additional functionality that we do not yet take
advantage of, namely the ability to ignore changes whose lines are
all blank (36617af).
2015-07-28 08:20:58 +02:00
Edward Thomson
ba6b288426 revert: correct test that added trailing newline 2015-07-28 08:18:37 +02:00
Edward Thomson
9ff89eaaa1 merge_files: don't add trailing newlines
When invoked with three files that each lack a trailing newline,
the merge result should also lack a trailing newline.
2015-07-28 08:18:37 +02:00
Tony Kelman
f57403919a Fix undefined reference with old versions of openssl
Versions prior to 0.9.8f  did not have this function, rhel/centos5 are still on a
heavily backported version of 0.9.8e and theoretically supported until March 2017

Without this ifdef, I get the following link failure:
```
CMakeFiles/libgit2_clar.dir/src/openssl_stream.c.o: In function `openssl_connect':
openssl_stream.c:(.text+0x45a): undefined reference to `SSL_set_tlsext_host_name'
collect2: error: ld returned 1 exit status
make[6]: *** [libgit2_clar] Error 1
```
2015-07-28 08:17:58 +02:00
Ben Chatelain
08afd227df Fix remaining documentation warnings 2015-07-27 18:32:55 -06:00
Ben Chatelain
2da64edb80 Add -Wdocumentation flag if supported 2015-07-27 18:28:29 -06:00
Ben Chatelain
f90fbb8d22 Use correct Doxygen trailing comment syntax 2015-07-27 17:42:08 -06:00
Ben Chatelain
41808d0470 Fix @param names in doc comments 2015-07-27 14:46:50 -06:00
Carlos Martín Nieto
0e391d8526 iterator: adjust unreadable-dir test to new behaviour
We don't want the iterator to make us stop whenever we hit an unreadable
dir. We should instead move over to the next item.
2015-07-27 13:31:06 +02:00
Carlos Martín Nieto
12786e0f7c iterator: skip over errors in diriter init
An error here will typically mean that the directory was removed between
the time we iterated the parent and the time we wanted to visit it in
which case we should ignore it.

Other kinds of errors such as permissions (or transient errors) also
better dealt with by pretending we didn't see it.
2015-07-26 17:19:22 +02:00
Russell Sim
2f72fad2b3 Commited changes from the 0.22 series 2015-07-26 20:55:06 +10:00
Russell Sim
c7d01cbce9 Commited changes from the 0.21 series 2015-07-26 20:52:18 +10:00
Russell Sim
bc62400d7e Merge branch 'upstream'
* upstream: (1173 commits)
  Update CHANGELOG with the release number
  filter: add docs for streaming filters
  iterator_walk: cast away constness for free
  filter::stream: free the filter sanely
  submodule: correctly delimit the keys to use for lookup
  submodule: add failing test for loading the wrong submodule
  submodule: completely remove reload_all
  Fix 8.3 filename tests failure when 8.3 is disabled
  Fix #3093 - remove declaration of unused function git_fetch__download_pack
  http: fixed leak when asking for credentials again
  index tests: add eol to avoid compiler warning
  checkout test: mark unused vars
  winhttp: remove unused var
  posix compat: include sys/stat.h for mingw
  diff: use size_t format
  fix memory leak in refspec.c on errors.
  checkout test: check getcwd return value
  clar: test chdir
  filter test: pass base type
  examples: clean up some warnings
  ...
2015-07-26 20:52:12 +10:00
Carlos Martín Nieto
19d9beb7ff filebuf: remove lockfile upon rename errors
When we have an error renaming the lockfile, we need to make sure
that we remove it upon cleanup. For this, we need to keep track of
whether we opened the file and whether the rename succeeded.

If we did create the lockfile but the rename did not succeed, we
remove the lockfile. This won't protect against all errors, but
the most common ones (target file is open) does get handled.
2015-07-24 23:02:11 +02:00
Carlos Martín Nieto
668053befe filebuf: failing test for leaving the lockfile when failing to rename
When we fail to rename, we currently leave the lockfile laying
around. This shows that behaviour.
2015-07-24 22:55:43 +02:00
Edward Thomson
2dfd5eae33 Merge pull request #3307 from libgit2/cmn/submodule-backslash
Normalize submodule urls before looking at them
2015-07-24 15:05:16 -05:00
Edward Thomson
759b2230a5 Merge pull request #3303 from libgit2/cmn/index-add-submodule
Allow adding a submodule through git_index_add_bypath
2015-07-24 15:04:20 -05:00
Edward Thomson
91dad18143 Merge pull request #3305 from libgit2/cmn/reflog-del-backend
refdb: delete a ref's reflog upon deletion
2015-07-24 15:01:04 -05:00
Edward Thomson
14e805a2ce Merge pull request #3304 from libgit2/cmn/checkout-free-stream
filter: make sure to close the stream even on error
2015-07-24 14:59:38 -05:00
Edward Thomson
4e0421fdbd Merge pull request #3317 from csware/fix-vista
Make libgit2 work on Windows Vista again
2015-07-23 10:00:55 -05:00
Josh Abernathy
abbe17ef1f Merge pull request #3322 from libgit2/fix-init-ordering
Increment `git__n_inits` before doing `init_once`.
2015-07-22 16:01:08 -04:00
joshaber
9830fbba05 Merge branch 'master' into fix-init-ordering 2015-07-22 11:33:18 -04:00
joshaber
cf198fdf2a Increment git__n_inits before doing init_once.
Fixes #3318.
2015-07-22 10:51:38 -04:00
Sven Strickroth
318bb763e9 Make libgit2 work on Windows Vista again
(fixes issue #3316)

Signed-off-by: Sven Strickroth <email@cs-ware.de>
2015-07-22 12:52:24 +02:00
Carlos Martín Nieto
42156d5617 Merge pull request #3315 from rcorre/docfix
Document git_fetch_options struct and fix typo.
2015-07-20 16:47:21 +02:00
Ryan Roden-Corrent
37996d474b Document git_fetch_options struct and fix typo.
git_fetch_options was missing from the API docs because it lacked a
documentation comment above the struct declaration.
I used the git_checkout_options docstring as a template.

Also fixes a typo in git_remote_prune_refs (remote, not reamote).
2015-07-20 09:48:01 -04:00
Edward Thomson
274f0b9371 Merge pull request #3311 from Fallso/MacroRedefinition
Fix macro redefinition warning
2015-07-15 09:17:35 -05:00
Fallso
cec3569f25 Fix macro redefinition warning 2015-07-15 11:40:06 +01:00
Carlos Martín Nieto
ceb5873913 Merge pull request #3302 from libgit2/cmn/submodule-foreach-diff-path
List a submodule only once when the path matches a submodule in the index
2015-07-13 18:50:39 +02:00
Carlos Martín Nieto
a58854a031 submodule, path: extract slash conversion
Extract the backslash-to-slash conversion into a helper function.
2015-07-13 17:11:19 +02:00
Carlos Martín Nieto
97c0a85fc6 Merge pull request #3306 from libgit2/cmn/fetch-ex-fetch
examples: modernise the fetch example
2015-07-13 11:23:07 +02:00
Carlos Martín Nieto
f00f005bad submodule: normalize slashes in resolve_url
Our path functions expect to work with slashes, so convert a
path with backslashes into one with slashes at the top of
the function.
2015-07-13 09:08:32 +02:00
Carlos Martín Nieto
aa51fa1e03 submodule: add failing test for backslash in url 2015-07-13 08:39:35 +02:00
Carlos Martín Nieto
f861abadfe Merge branch 'portable-zu' 2015-07-12 19:56:19 +02:00
Matthew Plough
768f8be31c Fix #3094 - improve use of portable size_t/ssize_t format specifiers.
The header src/cc-compat.h defines portable format specifiers PRIuZ, PRIdZ, and PRIxZ. The original report highlighted the need to use these specifiers in examples/network/fetch.c.  For this commit, I checked all C source and header files not in deps/ and transitioned to the appropriate format specifier where appropriate.
2015-07-12 19:55:19 +02:00
Carlos Martín Nieto
6c7e86e158 examples: modernise the fetch example
Under normal conditions, git_remote_fetch() should be the only function
used to perform a fetch. Don't let the example lead people astray.
2015-07-12 19:41:01 +02:00
Carlos Martín Nieto
01d0c02dba refdb: delete a ref's reflog upon deletion
Removing a reflog upon ref deletion is something which only some
backends might wish to do. Backends which are database-backed may wish
to archive a reflog, log-based ones may not need to do anything.
2015-07-12 19:08:06 +02:00
Carlos Martín Nieto
4de7f3bfc3 filter: make sure to close the stream even on error
When the stream list init or write fail, we must also make sure to close
the stream, as that's the function contract.
2015-07-12 13:28:03 +02:00
Carlos Martín Nieto
247d27c2c6 index: allow add_bypath to update submodules
Similarly to how git itself does it, allow the index update operation to
stage a change in a submodule's HEAD.
2015-07-12 12:11:22 +02:00
Carlos Martín Nieto
0d98af0911 blob: fail to create a blob from a dir with EDIRECTORY
This also affects `git_index_add_bypath()` by providing a better error
message and a specific error code when a directory is passed.
2015-07-12 12:11:22 +02:00
Carlos Martín Nieto
8a52ed7a48 errors: add EDIRECTORY
This is to be returned when the operation which the user asked for is
not possible to do on a directory.
2015-07-12 12:11:22 +02:00