Commit Graph

1479 Commits

Author SHA1 Message Date
Ben Straub
cfd192b014 Add test for multiple thread init/shutdown 2013-10-04 19:27:12 -07:00
nulltoken
da7b78fa44 index: Make _read() cope with index file creation 2013-10-04 15:54:36 +02:00
nulltoken
34b8eafcae Tabify indentations 2013-10-04 11:36:40 +02:00
Vicent Martí
146b4d1c5f Merge pull request #1888 from jamill/network_cancellation
network cancellation improvements
2013-10-03 08:18:41 -07:00
Jameson Miller
7baa7631ea Style tweaks and changes for code review feedback 2013-10-03 09:51:21 -04:00
Vicent Martí
ab13687662 Merge pull request #1887 from libgit2/ntk/topic/git_message_raw
commit: Introduce git_commit_message_raw()
2013-10-03 04:36:29 -07:00
nulltoken
598f069b99 commit: Introduce git_commit_message_raw() 2013-10-03 07:59:55 +02:00
Ben Straub
41a6de289f HTTP: handle "relative" redirects 2013-10-02 14:45:57 -07:00
Jameson Miller
83db7e09e2 Fix broken online push tests 2013-10-02 15:19:40 -04:00
Jameson Miller
5b18822545 Support cancellation in push operation
This commit adds cancellation for the push operation. This work consists of:

1) Support cancellation during push operation
    - During object counting phase
    - During network transfer phase
        - Propagate GIT_EUSER error code out to caller
2) Improve cancellation support during fetch
    - Handle cancellation request during network transfer phase
    - Clear error string when cancelled during indexing
3) Fix error handling in git_smart__download_pack

Cancellation during push is still only handled in the pack building and
network transfer stages of push (and not during packbuilding).
2013-10-02 15:12:44 -04:00
Carlos Martín Nieto
0e0cf78773 clone: put the callbacks struct directly in the clone options
There's no need for this to be a pointer to somewhere else.
2013-10-02 14:04:44 +02:00
Carlos Martín Nieto
fdc7e5e35e clone: bring back NULL as defaults
This wasremoved as part of the large culling a few commits ago.
2013-10-02 06:42:27 +02:00
Carlos Martín Nieto
c833893c64 clone: re-allow using a custom remote name
This is a small thing that by itself doesn't quite justify making the
user use clone_into.
2013-10-02 06:42:26 +02:00
Carlos Martín Nieto
6ac15eff6d clone: remove more options from basic clone
The basic clone function is there to make it easy to create a "normal"
clone. Remove a bunch of options that are about changing the remote's
configuration.
2013-10-02 06:42:26 +02:00
Carlos Martín Nieto
c8dbec4803 clone: remove the autotag option
Downloading all tags is part of what makes it a clone instead of
simply a fetch.
2013-10-02 06:41:42 +02:00
Carlos Martín Nieto
d19870d947 clone: implement git_clone_into
This allows you to set up the repository and remote as you which to
have them before performing the clone operation.
2013-10-02 06:41:42 +02:00
Carlos Martín Nieto
e3c131c544 remote: move the credentials callback to the struct
Move this one as well, letting us have a single way of setting the
callbacks for the remote, and removing fields from the clone options.
2013-10-02 06:41:42 +02:00
Carlos Martín Nieto
d31402a3fc remote: put the _download() callback with the others
The text progress and update_tips callbacks are already part of the
struct, which was meant to unify the callback setup, but the download
one was left out.
2013-10-02 06:41:42 +02:00
Vicent Martí
c655aa5209 Merge pull request #1882 from linquize/config-subsection-fix
Config subsection name should allow to have ']' and '\\' should allow to escape any characters
2013-10-01 05:54:54 -07:00
Linquize
8d74125384 Add negative test cases for config header with invalid characters 2013-10-01 09:56:59 +08:00
Linquize
d52a93fab3 Add test case to test ']' and '\\' characters in config subsection 2013-10-01 09:56:59 +08:00
Vicent Martí
fba147631e Merge pull request #1879 from libgit2/redir-refactor
Redir refactor
2013-09-30 15:03:35 -07:00
Vicent Martí
a6884b6fc7 Merge pull request #1412 from jamill/push_progress
Initial Implementation of progress reports during push
2013-09-30 14:58:45 -07:00
Vicent Martí
9acde16266 Merge pull request #1881 from libgit2/ignore-submodules-in-stash
Never consider submodules for stashing
2013-09-30 14:57:48 -07:00
Ben Straub
ae5a935290 Ensure submodule repos and indices are freed
...before the helper's cleanup method tries to delete their files.
2013-09-30 14:47:56 -07:00
Vicent Martí
dc56fea7a3 Merge pull request #1878 from libgit2/ntk/fix/warnings
Fix x86/x64 size_t related warnings
2013-09-30 12:18:19 -07:00
Jameson Miller
b176ededb7 Initial Implementation of progress reports during push
This adds the basics of progress reporting during push. While progress
for all aspects of a push operation are not reported with this change,
it lays the foundation to add these later. Push progress reporting
can be improved in the future - and consumers of the API should
just get more accurate information at that point.

The main areas where this is lacking are:

1) packbuilding progress: does not report progress during deltafication,
   as this involves coordinating progress from multiple threads.

2) network progress: reports progress as objects and bytes are going
   to be written to the subtransport (instead of as client gets
   confirmation that they have been received by the server) and leaves
   out some of the bytes that are transfered as part of the push protocol.
   Basically, this reports the pack bytes that are written to the
   subtransport. It does not report the bytes sent on the wire that
   are received by the server. This should be a good estimate of
   progress (and an improvement over no progress).
2013-09-30 13:22:28 -04:00
nulltoken
d27a441dde commit: Trim message leading newlines
Fix libgit2/libgit2sharp#522
2013-09-30 11:33:58 +02:00
nulltoken
27c8eb2a1a Tabify indentations 2013-09-30 11:31:35 +02:00
Justin Spahr-Summers
526d4c949c Test that submodules don't affect stashing 2013-09-27 21:39:28 -07:00
Ben Straub
0049d4d1d2 Make sure utility doesn't leak memory 2013-09-26 16:25:34 -07:00
Ben Straub
ea59f65977 Deploy gitno_connection_data into transport (winhttp)
...and have that call manage replaced memory in the output structure.
2013-09-26 16:20:30 -07:00
nulltoken
8a1e925dde Fix warnings 2013-09-26 20:44:43 +02:00
Ben Straub
8988688c47 Migrate redirect URL handling to common utility 2013-09-25 20:41:56 -07:00
Russell Belfer
1c8de38004 Make tests pass if XDG config exists 2013-09-24 15:46:20 -07:00
Russell Belfer
eb0ff13071 Disconnect path string to preserve after redirect
The subtransport path was relying on pointing to data owned by
the remote which meant that after a redirect, the updated path
was getting lost for future requests.  This updates the http
transport to strdup the path and maintain its own lifetime.

This also pulls responsibility for parsing the URL back into the
http transport and isolates the functions that parse and free that
connection data so that they can be reused between the initial
parsing and the redirect parsing.
2013-09-24 14:07:08 -07:00
Russell Belfer
d005885f0a Fix up filebuf tests a bit 2013-09-24 10:20:16 -07:00
Russell Belfer
634f10f690 Fix incorrect return code in crlf filter
The git_buf_text_gather_stats call returns a boolean indicating if
the file looks like binary data.  That shouldn't be an error; it
should be used to skip CRLF processing though.
2013-09-24 10:11:20 -07:00
Russell Belfer
713793133f Fix warnings on Windows 64-bit build 2013-09-23 21:41:52 -07:00
Carlos Martín Nieto
07fb67f90e merge: reverse array and length parameter order
Make it pair up with the one for commits. This fixes #1691.
2013-09-22 05:59:35 +02:00
Ben Straub
32b247d5e7 Suppress noise from running Valgrind on OSX 10.8 2013-09-19 10:30:43 -07:00
Russell Belfer
f60ed4e649 Update clar and recreate cl_assert_equal_sz
This updates clar to the version without cl_assert_equal_sz and
then adds a new version of that macro the clar_libgit2.h.  The new
version works around a strange issue that seemed to be arising on
release builds with VS 10 64-bit builds.
2013-09-17 09:31:46 -07:00
Russell Belfer
eefc32d549 Bug fixes and cleanups
This contains a few bug fixes and some header and API cleanups.

The main API change is that filters should now use GIT_PASSTHROUGH
to indicate that they wish to skip processing a file instead of
GIT_ENOTFOUND.

The bug fixes include a possible out-of-range buffer access in
the ident filter, a filter ordering problem I introduced into the
custom filter tests on Windows, and a filter buf NUL termination
issue that was coming up on Linux.
2013-09-17 09:31:46 -07:00
Russell Belfer
eab3746b30 More filtering tests including order
This adds more tests of filters, including the ident filter when
mixed with custom filters.  I was able to combine with the reverse
filter and demonstrate that the order of filter application with
the default priority constants matches the order of core Git.

Also, this fixes two issues in the ident filter: preventing ident
expansion on binary files and avoiding a NULL dereference when
dollar sign characters are found without Id.
2013-09-17 09:31:46 -07:00
Russell Belfer
37f9e40939 Some tests with ident and crlf filters
Fixed the filter order to match core Git, too.

This test demonstrates an interesting behavior of core Git (which
is totally reasonable and which libgit2 matches, although mostly
by coincidence).  If you use the ident filter and commit a file
with a garbage ident in it, like '$Id: this is just garbage$' and
then immediately do a 'git checkout-index' with the new file, Git
will not consider the file out of date and will not overwrite the
file with an updated $Id$.  Libgit2 has the same behavior.  If you
remove the file and then do a checkout-index, it will be replaced
with a filtered version that has injected the OID correctly.
2013-09-17 09:31:46 -07:00
Russell Belfer
155fa2342d Add clar helper to create new commit from index
There were a lot of places in the test code base that were creating
a commit from the index on the current branch.  This just adds a
helper to handle that case pretty easily.  There was only one test
where this change ended up tweaking the test data, so pretty easy
and mostly just a cleanup.
2013-09-17 09:31:46 -07:00
Russell Belfer
13f36ffb9e Add clar helpers for testing file equality
These are a couple of new clar helpers for testing that a file
has expected contents that I extracted from the checkout code.

Actually wrote this as part of an abandoned earlier attempt at a
new filters API, but it will be useful now for some of the tests
I'm going to write.
2013-09-17 09:31:46 -07:00
Russell Belfer
fa9cc14880 Fix cleanup issues with new tests 2013-09-17 09:31:46 -07:00
Russell Belfer
8427757f78 Fixing up some win32 issues with autocrlf 2013-09-17 09:31:46 -07:00
Russell Belfer
ad7417d7a1 Make filter tests somewhat more robust
The global and system config could interfere with the filter
tests by imposing CRLF filtering where it was not anticipated.
This better isolates the tests from the system settings.
2013-09-17 09:31:45 -07:00