Commit Graph

1857 Commits

Author SHA1 Message Date
Russell Belfer
19017a24e3 Merge pull request #797 from yorah/fix/inter-hunk-context
diff: make inter-hunk-context default value git-compliant
2012-07-10 16:24:17 -07:00
nulltoken
3e82d6c6f0 revparse: unfound reference return ENOTFOUND 2012-07-07 12:16:15 +02:00
nulltoken
b8460c2015 revparse: do not segfault when retrieving the last entry 2012-07-07 12:16:14 +02:00
nulltoken
e727938112 revparse: fix disambiguation of refs 2012-07-07 12:16:13 +02:00
nulltoken
805c81594d revparse: unfound previous head return ENOTFOUND 2012-07-07 12:16:12 +02:00
nulltoken
6a5136e538 revparse: only allow decimal reflog ordinal specs
passing 0 to git_strol(32|64) let the implementation guess if it's
dealing with an octal number or a decimal one.

Let's make it safe and ensure that both 'HEAD@{010}' and 'HEAD@{10}'
point at the same commit.
2012-07-07 12:16:10 +02:00
nulltoken
29f72aa638 revparse: leverage git__isdigit() 2012-07-07 12:16:09 +02:00
nulltoken
98d6a1fdda util: add git__isdigit() 2012-07-07 12:16:09 +02:00
nulltoken
cab65c2b23 revparse: detect incorrect "refname@{-n}" syntax 2012-07-07 12:16:08 +02:00
nulltoken
d0a920a6fd refs: deep unfound ref returns ENOTFOUND 2012-07-07 12:15:30 +02:00
nulltoken
5ffd510dd2 refs: remove seemingly useless giterr_clear() call 2012-07-07 12:15:29 +02:00
nulltoken
33c3370700 refs: deploy git_reference_has_log() 2012-07-07 12:15:29 +02:00
nulltoken
75261421ec refs: add git_reference_has_log() 2012-07-07 12:15:28 +02:00
nulltoken
b6bfd96fdd refs: fix moving of the reflog when renaming a ref 2012-07-07 12:15:28 +02:00
Cyril Roelandt
296f60f56d Fix libgit2 on GNU/Hurd.
On GNU, the d_name field of the dirent structure is defined as "char d_name[1]",
so we must allocate more than sizeof(struct dirent) bytes, just like on Sun.
2012-07-06 00:54:07 +02:00
Carlos Martín Nieto
521aedad30 odb: add git_odb_foreach()
Go through each backend and list every objects that exists in
them. This allows fsck-like uses.
2012-07-03 12:50:51 +02:00
nulltoken
494ae940a0 revparse: fix parsing of date specifiers 2012-07-02 19:56:41 +02:00
yorah
29f9186d1b diff: make inter-hunk-context default value git-compliant
Default in git core is 0, not 3
2012-07-02 17:27:49 +02:00
nulltoken
52b938d55a revparse: unfound reflog entry returns ENOTFOUND 2012-06-29 17:23:18 +02:00
nulltoken
08ac23a5fd revparse: unfound reflog ref returns ENOTFOUND 2012-06-29 17:23:10 +02:00
nulltoken
4de89ce72a revparse: unfound partially-named ref returns ENOTFOUND 2012-06-29 17:22:43 +02:00
Vicent Marti
46ea40d995 tree: Rename entry_copy to entry_dup 2012-06-29 17:08:36 +02:00
Vicent Marti
0e2fcca850 tree: Bring back entry_bypath
Smaller, simpler, faster.
2012-06-29 02:21:12 +02:00
nulltoken
0e7af9e758 revparse: unfound nth parent returns ENOTFOUND 2012-06-28 19:12:42 +02:00
nulltoken
0d23c62c48 revparse: handle specs with caret and colon 2012-06-28 19:12:41 +02:00
nulltoken
5b68ba7e15 revparse: unfound treepath returns ENOTFOUND 2012-06-28 19:12:40 +02:00
nulltoken
faaa7c517c revparse: return trees through the "colon" syntax 2012-06-28 19:12:40 +02:00
nulltoken
e28dd29b6e revparse: replace spaces with tabs 2012-06-28 19:12:39 +02:00
Carlos Martin Nieto
1d8943c640 mwindow: allow memory-window files to deregister
Once a file is registered, there is no way to deregister it, even
after the structure that contains it is no longer needed and has been
freed. This may be the source of #624.

Allow and use the deregister function to remove our file from the
global list.
2012-06-28 12:10:33 +02:00
Carlos Martín Nieto
371599576a indexer: don't use '/objects/pack/' unconditionally
Not everyone who indexes a packfile wants to put it in the standard
git repository location.
2012-06-28 10:24:03 +02:00
Vicent Martí
ed754a75e1 Merge pull request #783 from nulltoken/topic/reinit-coverage
Repo reinit fix + enhanced test coverage
2012-06-25 23:28:17 -07:00
Vicent Martí
c6713398ba Merge pull request #785 from nulltoken/topic/refs-fromglob
Topic/refs fromglob
2012-06-25 23:27:35 -07:00
Vicent Martí
b15b91f5df Merge pull request #786 from schu/indexer
indexer: start parsing input data immediately
2012-06-25 10:32:05 -07:00
Michael Schubert
f9fd710581 indexer: start parsing input data immediately
Currently, the first call of git_indexer_stream_add adds the data to the
underlying pack file and opens it for later use, but doesn't start
parsing the already available data.
This means, git_indexer_stream_finalize only works if
git_indexer_stream_add was called at least twice. Kill this limitation
by parsing available data immediately.
2012-06-25 15:38:36 +02:00
Vicent Marti
60029f499e amigaos: Add missing include 2012-06-24 16:56:32 +02:00
nulltoken
1163434646 revwalk: make git_revwalk_(push|hide)_glob() leverage git_reference_foreach_glob() 2012-06-22 21:42:10 +02:00
nulltoken
527ed55448 references: introduce git_reference_foreach_glob() 2012-06-22 21:40:24 +02:00
Vicent Marti
798e4d53dc amigaos: Cleanup 2012-06-22 21:25:17 +02:00
Vicent Marti
2ae052d1b1 Merge branch 'pull-req' of https://github.com/chris-y/libgit2 into amigaos 2012-06-22 20:48:50 +02:00
nulltoken
2c227b8b33 repository: fix configuration updating issue while reinitialization
When the repository was reinitialized, every configuration change in repo_init_config() was directly performed against the file on the filesystem. However, a previous version of the configuration had previously been loaded in memory and attached to the repository, in repo_init_reinit().

The repository was unaware of the change and the stale cached version of the configuration never refreshed.
2012-06-22 11:32:49 +02:00
Vicent Martí
fb8aa9e11b Merge pull request #782 from nulltoken/topic/branch-foreach
Branch foreach
2012-06-21 20:12:50 -07:00
Vicent Martí
7e912dd659 Merge pull request #780 from schu/cleanup
Cleanup
2012-06-21 11:22:45 -07:00
nulltoken
d4827081ea branch: drop git_branch_list() 2012-06-21 18:51:32 +02:00
nulltoken
a8fd805e2f branch: add git_branch_foreach() 2012-06-21 18:51:27 +02:00
liyuray
dfa0b65c69 fix below issues on mingw:
1. compile warning:

D:\libgit2.git\src\win32\posix_w32.c: In function 'p_open':
D:\libgit2.git\src\win32\posix_w32.c:235:10: warning: 'mode_t' is promoted to 'int' when passed through '...' [enabled by default]
D:\libgit2.git\src\win32\posix_w32.c:235:10: note: (so you should pass 'int' not 'mode_t' to 'va_arg')
D:\libgit2.git\src\win32\posix_w32.c:235:10: note: if this code is reached, the program will abort

2. test crash.

3. the above two issues are same root cause. please see http://www.eskimo.com/~scs/cclass/int/sx11c.html
2012-06-21 20:17:54 +08:00
Michael Schubert
f95121cb4f object: add missing git_odb_object_free 2012-06-21 10:33:24 +02:00
Michael Schubert
dca6b228d1 notes: fix memory leaks 2012-06-21 10:33:24 +02:00
Carlos Martín Nieto
b3aa440641 repository: avoid opening the repository twice on reinit
The call to repo_init_reinit already takes care of opening the
repository and giving us a git_repository object to give to the
caller. There is no need to call git_repository_open again.
2012-06-21 02:15:25 +02:00
Chris Young
b6423939d5 more getaddrinfo compatibility 2012-06-20 20:35:13 +01:00
Chris Young
8d18f1f723 getaddrinfo() replacement functions 2012-06-20 20:12:30 +01:00
Ben Straub
a15e7f8621 Fix indentation. 2012-06-19 21:12:04 -07:00
Ben Straub
eb6bc45f6d Avoid uninitialized variable error. 2012-06-19 21:11:48 -07:00
Carlos Martín Nieto
1d94a7d0f6 diff: make sure we free all allocated resources
When the creation of one iterator fails, we need to free the prefix
and possibly one of the iterators. Make sure we do so.
2012-06-20 02:22:07 +02:00
Carlos Martín Nieto
c06e000394 odb: don't leak when detecting id ambiguity
If we find several objects with the same prefix, we need to free the
memory where we stored the earlier object. Keep track of the raw.data
pointer across read_prefix calls and free it if we find another
object.
2012-06-20 01:41:30 +02:00
Carlos Martín Nieto
cdca82c784 Plug a few leaks 2012-06-20 00:46:34 +02:00
Vicent Martí
c3ce8d0c9a Merge pull request #775 from arrbee/fix-index-filemodes
Make index add/append support core.filemode flag
2012-06-19 15:17:35 -07:00
Vicent Martí
5232994072 Merge pull request #768 from nulltoken/topic/expose-message-prettify
message: Expose git_message_prettify()
2012-06-19 15:04:45 -07:00
Carlos Martín Nieto
053b509668 revparse: handle a non-existent path in the colon syntax
oid_for_tree_path may not always find the path in the tree, in which
case we need to return an error. The current code doesn't do this and
results in undefined behavior.
2012-06-19 23:47:17 +02:00
Russell Belfer
da825c92d9 Make index add/append support core.filemode flag
This fixes git_index_add and git_index_append to behave more like
core git, preserving old filemode data in the index when adding
and/or appending with core.filemode = false.

This also has placeholder support for core.symlinks and
core.ignorecase, but those flags are not implemented (well,
symlinks has partial support for preserving mode information in
the same way that git does, but it isn't tested).
2012-06-19 14:27:02 -07:00
Ben Straub
2c90145aad Fix potential segfault in revparse. 2012-06-19 09:25:55 -07:00
nulltoken
743a4b3bdd message: Expose git_message_prettify()
git_commit() and git_tag() no longer prettify the
message by default. This has to be taken care of
by the caller.

This has the nice side effect of putting the
caller in position to actually choose to strip
the comments or not.
2012-06-19 10:02:22 +02:00
Vicent Martí
68f527c448 Merge pull request #758 from libgit2/config-values-containing-quotes
Quotes inside config values don't survive serialization/deserialization
2012-06-18 17:50:12 -07:00
Vicent Marti
8c4c357f18 clar: Fix warnings 2012-06-19 02:43:36 +02:00
Vicent Martí
31eed56b9e Merge pull request #753 from nulltoken/topic/merge-base-many
Expose git_merge_base_many()
2012-06-18 17:36:14 -07:00
Vicent Marti
b93688d06d Merge remote-tracking branch 'yorah/fix/notes-creation' into development
Conflicts:
	src/notes.c
2012-06-19 02:33:03 +02:00
Vicent Marti
515a4c7c06 tree: Proper path comparison logic 2012-06-19 00:59:04 +02:00
Tim Clem
ac8eac2f66 Fix compile errors when building on windows
Errors were due to not including winsock2 early enough.
2012-06-15 11:25:52 -07:00
Tim Clem
e00b56eb04 Fix broken tests caused by no longer prettifying by default 2012-06-15 10:18:08 -07:00
Tim Clem
e4031cb531 Kill message_prettify - we will export instead 2012-06-15 09:26:56 -07:00
Tim Clem
bc2deed0fb Don't strip comments (#) from commit messages by default 2012-06-15 09:13:59 -07:00
Chris Young
d043013fea More changes resulting from pull request 2012-06-14 19:09:42 +01:00
Chris Young
a8df98c6fb Updates from comments on OS4 compatibility pull request http://github.com/libgit2/libgit2/pull/766 2012-06-14 18:57:24 +01:00
Chris Young
a21bb1aa33 Merge remote-tracking branch 'source/development' into development 2012-06-13 23:28:51 +01:00
Chris Young
96ef3d8462 Make this more generic and mergeable.
Needs AmigaOS.cmake now from CMake package at OS4Depot, or contents below:
--8<--
SET(AMIGA 1)
SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC")
SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared")
--8<--
2012-06-13 23:16:14 +01:00
Ben Straub
73aaf67439 Precompile headers for MSVC. 2012-06-13 14:28:47 -07:00
Carlos Martín Nieto
49938cad91 config: correctly escape quotes in the value
When a configuration option is set, we didn't check to see whether
there was any escaping needed. Escape the available characters so we
can unescape them correctly when we read them.
2012-06-13 23:26:00 +02:00
Frederick Ros
fa45d25f38 Fix issue #763 2012-06-13 17:35:13 +02:00
Chris Young
2aeadb9c78 Actually do the mmap... unsurprisingly, this makes the indexer work on SFS
On RAM: the .idx and .pack files become links to a .lock and the original download respectively.
Assume some feature (such as record locking) supported by SFS but not JXFS or RAM: is required.
2012-06-12 19:25:09 +01:00
Russell Belfer
64e56478ad Merge pull request #760 from nulltoken/topic/logAllRefUpdates
make git_repository_init() value the core.logallrefupdates config entry
2012-06-12 09:29:56 -07:00
Michael Schubert
c073459371 revparse: remove unnecessary GIT_BEGIN_DECL 2012-06-12 11:34:01 +02:00
nulltoken
7623b1b63f repository: make git_repository_init() value the core.logallrefupdates config entry 2012-06-12 06:42:46 +02:00
Russell Belfer
471fa05eb7 Fix fragile commit parsing in revwalk 2012-06-11 15:53:47 -07:00
Ben Straub
0284a21983 Fix mingw32 (Travis) build. 2012-06-11 12:55:36 -07:00
Russell Belfer
9939e602d8 Ignores allow unescapes internal whitespace 2012-06-11 09:24:02 -07:00
Chris Young
90490113af Basic mmap/munmap compatiblity 2012-06-10 18:08:15 +01:00
Chris Young
7d1983ebc2 stop readdir parsing crashing 2012-06-09 18:58:11 +01:00
Chris Young
327fb51cec Fix gethostbyname compatibility 2012-06-09 18:13:07 +01:00
Chris Young
b9bfc7684b pre-compiled sha1ppc.S.obj file with nasty CMake hack instructions as the cross-compile process refuses to build and link this file itself. 2012-06-09 17:33:08 +01:00
Russell Belfer
ac971ecfdb Better fix for isalpha in drive letter detection
Missed a place that used this and missed git__isalpha
2012-06-08 14:08:34 -07:00
Russell Belfer
d17db71b6f isalpha is not great for UTF-8
When checking for a drive letter on windows, instead of using
isalpha(), it is better to just check for a..z and A..Z, I think,
particularly because the MS isalpha implementation appears to
assert when given an 0xFF byte.
2012-06-08 13:56:53 -07:00
Russell Belfer
145e696b49 Minor fixes, cleanups, and clarifications
There are three actual changes in this commit:

1. When the trailing newline of a file is removed in a diff, the
   change will now be reported with `GIT_DIFF_LINE_DEL_EOFNL` passed
   to the callback.  Previously, the `ADD_EOFNL` constant was given
   which was just an error in my understanding of when the various
   circumstances arose.  `GIT_DIFF_LINE_ADD_EOFNL` is deprecated and
   should never be generated.  A new newline is simply an `ADD`.
2. Rewrote the `diff_delta__merge_like_cgit` function that contains
   the core logic of the `git_diff_merge` implementation.  The new
   version doesn't actually have significantly different behavior,
   but the logic should be much more obvious, I think.
3. Fixed a bug in `git_diff_merge` where it freed a string pool
   while some of the string data was still in use.  This led to
   `git_diff_print_patch` accessing memory that had been freed.

The rest of this commit contains improved documentation in `diff.h`
to make the behavior and the equivalencies with core git clearer,
and a bunch of new tests to cover the various cases, oh and a minor
simplification of `examples/diff.c`.
2012-06-08 12:11:13 -07:00
Russell Belfer
0abd724454 Fix filemode comparison in diffs
File modes were both not being ignored properly on platforms
where they should be ignored, nor be diffed consistently on
platforms where they are supported.

This change adds a number of diff and status filemode change
tests.  This also makes sure that filemode-only changes are
included in the diff output when they occur and that filemode
changes are ignored successfully when core.filemode is false.

There is no code that automatically toggles core.filemode
based on the capabilities of the current platform, so the user
still needs to be careful in their .git/config file.
2012-06-08 12:09:10 -07:00
yorah
a02e724978 notes: simplify the handling of fanouts
- Do not create new levels of fanout when creating notes from libgit2
 - Insert a note in an existing matching fanout
 - Remove a note from an existing fanout
 - Cleanup git_note_read, git_note_remove, git_note_foreach, git_note_create methods in order use tree structures instead of tree_oids
2012-06-08 20:34:24 +02:00
nulltoken
b0b3b4e39e treebuilder: prevent git_treebuilder_free() from segfaulting when being passed a NULL treebuilder 2012-06-08 20:34:13 +02:00
Chris Young
aa5a92d121 OS4 compatibility 2012-06-08 18:57:35 +01:00
Vicent Martí
3f0358604e misc: Fix warnings from PVS Studio trial 2012-06-07 22:43:48 +02:00
Chris Young
6b5db63c15 random page size for os4 2012-06-07 21:40:07 +01:00
Chris Young
c41fc47512 horrid gethostbyname compatibility 2012-06-07 21:26:39 +01:00
Ben Straub
763b838152 Fixing rev-parse-induced Travis errors. 2012-06-07 13:22:50 -07:00
Chris Young
2774ccb851 no fnmatch.h 2012-06-07 20:40:34 +01:00