Commit Graph

6719 Commits

Author SHA1 Message Date
Alan Rogers
59fcebaa89 Use 'X' for unreadable status. 2014-05-30 16:22:13 -07:00
Alan Rogers
66271925a1 Add GIT_STATUS_OPT_INCLUDE_UNREADABLE 2014-05-30 16:21:49 -07:00
Alan Rogers
a777fc3785 Remove GIT_FILEMODE_NEW as it's unused.
And use 0 for GIT_FILEMODE_UNREADABLE.
2014-05-30 16:21:13 -07:00
Alan Rogers
c3252c11bf We do expect the foo path in the nopermissions test 2014-05-23 00:29:04 +10:00
Alan Rogers
c4366096d4 Don't need to duplicate this code. 2014-05-23 00:28:12 +10:00
Alan Rogers
7c4bbbf46d Try a value for UNREADABLE that won't get masked out?! 2014-05-23 00:27:34 +10:00
Alan Rogers
e8cc3032c1 Return GIT_DELTA_UNREADABLE for a file with a mode change 2014-05-22 19:43:58 +10:00
Alan Rogers
6580b11c2a Remove errant newline 2014-05-22 19:26:55 +10:00
Alan Rogers
9532edc028 Simplify the no permission test. 2014-05-21 23:13:46 +10:00
Alan Rogers
9067d5af4a Remove errant whitespace. 2014-05-21 23:13:24 +10:00
Alan Rogers
86c9d3dae2 Return GIT_FILEMODE_UNREADABLE for files that fail to stat. 2014-05-21 22:54:34 +10:00
Alan Rogers
61bef72dc3 Start adding GIT_DELTA_UNREADABLE and GIT_STATUS_WT_UNREADABLE. 2014-05-20 23:57:40 +10:00
Alan Rogers
f47bc8ff5e Skip unreadable files for now. 2014-05-20 18:16:04 +10:00
Alan Rogers
9055347944 Rename GIT_ENOACCESS -> GIT_EUNREADABLE 2014-05-20 17:40:28 +10:00
Alan Rogers
dc4906f12a Skip unreadable files for now. 2014-05-15 17:40:28 +10:00
Alan Rogers
158c8ba1ee Return a specific error for EACCES. 2014-05-15 16:54:46 +10:00
Alan Rogers
8d3a2d5fc5 Simplify the test. 2014-05-15 16:33:26 +10:00
Alan Rogers
2b5a99d8ff Add a test (failing) for a work tree status.
When thees is an unreadable folder, we should still be able
to enumerate status.
2014-05-14 17:02:07 +10:00
Russell Belfer
df3419269b Merge pull request #2336 from libgit2/rb/unicode-branch-names
Pass unconverted Unicode path data when iconv doesn't like it
2014-05-12 10:51:56 -07:00
Russell Belfer
af567e8853 Merge pull request #2334 from libgit2/rb/fix-2333
Be more careful with user-supplied buffers
2014-05-12 10:44:13 -07:00
Russell Belfer
ce3b71d91b Don't scale diff stat when not needed 2014-05-12 10:28:45 -07:00
Russell Belfer
b1914c3651 Minor fixes for warnings and error propagation 2014-05-12 10:24:46 -07:00
Russell Belfer
7bcced44b7 Merge pull request #2300 from libgit2/cmn/match-host-tests
Some improvements to the cert checking
2014-05-12 10:15:30 -07:00
Russell Belfer
d2c4d1c63d Merge pull request #2188 from libgit2/cmn/config-snapshot
Configuration snapshotting
2014-05-12 10:04:52 -07:00
Vicent Marti
e18d5e52e3 Merge pull request #2331 from libgit2/rb/dont-stop-diff-on-safecrlf
Add filter options and ALLOW_UNSAFE
2014-05-09 08:59:59 +02:00
Russell Belfer
bb45e39063 Disable threads::refdb::edit_while_iterate test
It seems that with the various recent changes to reference updating
and reflog writing, that the thread safety of refdb updates has
been reduced (either that or it was never thread safe and the
window for error has increased).  Either way, this test is now
sometimes segfaulting which is no good, so let's disable the test
for now.  We don't really make any public promises about thread
safety for this type of operation, so I think this is acceptable,
at least in the short term.
2014-05-08 15:01:07 -07:00
Russell Belfer
8a2ef218b9 Don't always test composed-insensitive lookups
Only on a filesystem that is composed/decomposed insensitive,
should be testing that a branch can be looked up by the opposite
form and still work correctly.
2014-05-08 14:48:27 -07:00
Russell Belfer
be20ac5a1d Allow cl_repo_get_bool to work with missing key
One of the test helpers provides a quick way for looking up a
boolean key.  But if the key way missing completely, the check
would actually raise an error.  Given the way we use this helper,
if the key is missing, this should just return false, I think.
2014-05-08 14:33:37 -07:00
Vicent Marti
4df53a64a1 Merge pull request #2335 from libgit2/cmn/indexer-vector-handling
indexer: avoid memory moves
2014-05-08 23:16:21 +02:00
Russell Belfer
43a0413524 Pass unconverted data when iconv doesn't like it
When using Iconv to convert unicode data and iconv doesn't like
the source data (because it thinks that it's not actual UTF-8),
instead of stopping the operation, just use the unconverted data.
This will generally do the right thing on the filesystem, since
that is the source of the non-UTF-8 path data anyhow.

This adds some tests for creating and looking up branches with
messy Unicode names.  Also, this takes the helper function that
was previously internal to `git_repository_init` and makes it
into `git_path_does_fs_decompose_unicode` which is a useful in
tests to understand what the expected results should be.
2014-05-08 13:52:46 -07:00
Carlos Martín Nieto
2dde1e0c1c indexer: avoid memory moves
Our vector does a move of the rest of the array when we remove an
item. Doing this repeatedly can be expensive, and we do this a lot in
the indexer. Instead, set the value to NULL and skip those entries.

perf reported around 30% of `index-pack` time was going into
memmove. With this change, that goes away and we spent most of the time
hashing and inflating data.
2014-05-08 22:40:13 +02:00
Russell Belfer
5ebe18b72c Merge pull request #2332 from libgit2/peff/iconv
iconv debugging aids
2014-05-08 13:29:09 -07:00
Jeff King
56ec2256f2 examples: add a basic for-each-ref example
This is quite close to running "git for-each-ref" except:

  1. It does not take any formatting or selection options at
     all.

  2. The output is not sorted.

I wrote it to look at debugging some issues with ref
iteration, but there's no reason it can't live on as an
example command.
2014-05-08 15:49:38 -04:00
Jeff King
6bcb098755 cmake: s/ICONV/Iconv/ in FIND_PACKAGE
The cmake module we provide is in the file FindIconv.cmake,
so we must match the case correctly. It happens to work in
practice because we only turn on ICONV on Darwin, and people
generally have case-insensitive filesystems there.

Note that we only need to update the package name here. The
package itself still sets the all-uppercase ICONV_FOUND
flag, so we continue to use uppercase in the rest of cmake.
2014-05-08 15:48:49 -04:00
Russell Belfer
45c53eb6cb Use unsigned type for APIs with opt flag mask 2014-05-08 10:46:04 -07:00
Russell Belfer
1e4976cb01 Be more careful with user-supplied buffers
This adds in missing calls to `git_buf_sanitize` and fixes a
number of places where `git_buf` APIs could inadvertently write
NUL terminator bytes into invalid buffers.  This also changes the
behavior of `git_buf_sanitize` to NUL terminate a buffer if it can
and of `git_buf_shorten` to do nothing if it can.

Adds tests of filtering code with zeroed (i.e. unsanitized) buffer
which was previously triggering a segfault.
2014-05-08 10:17:14 -07:00
Carlos Martín Nieto
ac99d86ba5 repository: introduce a convenience config snapshot method
Accessing the repository's config and immediately taking a snapshot of
it is a common operation, so let's provide a convenience function for
it.
2014-05-07 11:34:32 +02:00
Russell Belfer
ed476c236b Merge pull request #2329 from anuraggup/fix_git_shutdown
Fix the issues in git_shutdown
2014-05-06 16:11:03 -07:00
Russell Belfer
5269008cf6 Add filter options and ALLOW_UNSAFE
Diff and status do not want core.safecrlf to actually raise an
error regardless of the setting, so this extends the filter API
with an additional options flags parameter and adds a flag so that
filters can be applied with GIT_FILTER_OPT_ALLOW_UNSAFE, indicating
that unsafe filter application should be downgraded from a failure
to a warning.
2014-05-06 16:01:49 -07:00
Russell Belfer
1051100025 Merge pull request #2324 from libgit2/cmn/file-in-objects-dir
odb: ignore files in the objects dir
2014-05-06 14:03:58 -07:00
Anurag Gupta
0bf5430dc7 Fix the issues in git_shutdown
1) Call to git_shutdown results in setting git__n_shutdown_callbacks
to -1. Next call to git__on_shutdown results in ABW (Array Bound Write)
for array git__shutdown_callbacks. In the current Implementation,
git_atomic_dec is called git__n_shutdown_callbacks + 1 times. I have
modified it to a for loop so that it is more readable. It would not
set git__n_shutdown_callbacks to a negative number and reset the
elements of git__shutdown_callbacks to NULL.

2) In function git_sysdir_get, shutdown function is registered only if
git_sysdir__dirs_shutdown_set is set to 0. However, after this variable
is set to 1, it is never reset to 0. If git_sysdir_global_init is
called again from synchronized_threads_init it does not register
shutdown function for this subsystem.
2014-05-06 13:41:07 -07:00
Carlos Martín Nieto
6e9afb97d1 object: fix a brace
The brace in the check for peel's return was surrounding the wrong
thing, which made 'error' be set to 1 when there was an error instead of
the error code.
2014-05-06 21:29:55 +02:00
Anurag Gupta
001befcdd5 Fix the issues in git__on_shutdown 2014-05-06 12:16:24 -07:00
Carlos Martín Nieto
ee311907ee odb: ignore files in the objects dir
We assume that everything under GIT_DIR/objects/ is a directory. This is
not necessarily the case if some process left a stray file in there.

Check beforehand if we do have a directory and ignore the entry
otherwise.
2014-05-05 16:34:18 +02:00
Russell Belfer
d2c16e9ac4 Doc fixes 2014-05-02 15:15:43 -07:00
Vicent Marti
272b462db7 Merge pull request #2308 from libgit2/rb/diff-update-index-stat-cache
Reduce excessive OID calculation for diff and stat
2014-05-02 09:50:15 -07:00
Russell Belfer
9862ef8ef8 Merge pull request #2310 from libgit2/cmn/commit-create-safe
commit: safer commit creation with reference update
2014-05-02 09:42:07 -07:00
Russell Belfer
99dfa47039 Some further sandboxing cleanups to tests
Trying to find other issues where tests may not clean up quite
properly when they are through...
2014-05-02 09:21:33 -07:00
Russell Belfer
0f603132bc Improve handling of fake home directory
There are a few tests that set up a fake home directory and a
fake GLOBAL search path so that we can test things in global
ignore or attribute or config files.  This cleans up that code to
work more robustly even if there is a test failure.  This also
fixes some valgrind warnings where scanning search paths for
separators could end up doing a little bit of sketchy data access
when coming to the end of search list.
2014-05-02 09:21:33 -07:00
Russell Belfer
bc91347b58 Fix remaining init_options inconsistencies
There were a couple of "init_opts()" functions a few more cases
of structure initialization that I somehow missed.
2014-05-02 09:21:33 -07:00