Commit Graph

2421 Commits

Author SHA1 Message Date
Russell Sim
b23f854d6b added patch to fix minor spelling mistake 2012-05-20 21:23:41 +10:00
Russell Sim
3a282033f5 added symbols file 2012-05-20 21:23:32 +10:00
Russell Sim
44628f081a fixed 2 lintian errors 2012-05-20 21:23:28 +10:00
Russell Sim
45adeafb35 added symbol generation support 2012-05-20 21:23:23 +10:00
Russell Sim
7c3cad40e4 renamed clay to clar in copyright file 2012-05-20 21:23:15 +10:00
Russell Sim
93108bd538 changed package description 2012-05-20 21:23:09 +10:00
Russell Sim
2af1fda879 removed unused readme file 2012-05-20 21:23:06 +10:00
Russell Sim
b788cc0ac9 updated description field 2012-05-20 21:22:58 +10:00
Russell Sim
b06de9b00d added configure options for building tests 2012-05-20 21:22:25 +10:00
Russell Sim
7d42bce013 fixed up gpl exception listing 2012-05-20 21:22:20 +10:00
Russell Sim
d0bc2ba290 added zlib copyright and fixed libgit copyright format 2012-05-20 21:22:15 +10:00
Russell Sim
c35908c407 changed sections again 2012-05-20 21:22:08 +10:00
Russell Sim
dbe37d2c22 changed section to devel 2012-05-20 21:22:03 +10:00
Russell Sim
8c676c856e removed full stop from short description 2012-05-20 21:21:58 +10:00
Russell Sim
d6dcf12639 added full stop to end of description and removed extra priority tag 2012-05-20 21:21:53 +10:00
Russell Sim
3d861398c3 updated standards and removed unused files 2012-05-20 21:21:45 +10:00
Russell Sim
b9205bf251 updated package discriptions. 2012-05-20 21:21:38 +10:00
Russell Sim
51285d0095 updated changelog 2012-05-20 21:21:31 +10:00
Russell Sim
cd49f377a5 added watch file 2012-05-20 21:21:18 +10:00
Russell Sim
8dc4ea58bd updated packaging.
* cleaned up copyright
* corrected files in dev and lib packages
2012-05-20 21:21:13 +10:00
Russell Sim
5b74e1de54 added libgit2 so libraries 2012-05-20 21:21:08 +10:00
Russell Sim
f7080cd5cb added stub description 2012-05-20 21:20:57 +10:00
Russell Sim
0d836383cd added debug and dev packages 2012-05-20 21:20:39 +10:00
Russell Sim
7618a9d965 initial debian package 2012-05-20 21:20:34 +10:00
Vicent Marti
ad5df35a47 libgit2 v0.17.0 "Lord of Diffstruction"
Welcome to yet another libgit2 release, this one being the
biggest we've shipped so far. Highlights on this release
include diff, branches, notes and submodules support. The new
diff API is shiny and powerful. Check it out.

Apologies, one more time, to all the early adopters for the
breaking API changes. We've been iterating on the error
handling for the library until we reached its current state,
which we believe it's significantly more usable both for normal
users and for developers of bindings to other languages.
Also, we've renamed a few legacy calls to ensure that the whole
external API uses a consistent naming scheme.

As always, check the API docs for the full list of new API calls
and backwards-incompatible changes.

	http://libgit2.github.com/libgit2/

Changelog of new features follows:

Attributes:
	- Added function macros to check attribute values instead of having
	to manually compare them
	- Added support for choosing the attribute loading order (workdir files
	vs index) and to skip the systems' default `.gitattributes`
	- Fixed issues when fetching attribute data on bare repositories

Blob:
	- Added support for creating blobs from any file on disk (not
	restricted to the repository's working directory)
	- Aded support for smudge filters when writing blobs to the ODB
		- So far only CRLF normalization is available

Branches:
	- Added a high-level branch API:
		- git_branch_create
		- git_branch_delete
		- git_branch_list
		- git_branch_move

Commit:
	- Commit messages are now filtered to match Git rules (stripping
	comments and adding proper whitespacing rules)

Config:
	- Added support for setting and getting multivars
	- Added `git_config_get_mapped` to map the value of a config
	variable based on its defaults

Diff:
	- Added full diff API:
		- tree to tree
		- index to tree
		- workdir to index
		- workdir to tree
		- blob to blob

	- Added helper functions to print the diffs as valid patchfiles

Error handling:
	- New design for the error handling API, taking into consideration
	the requirements of dynamic languages

Indexer:
	- Added streaming packfile indexer

Merge:
	- Added support for finding the merge base between two commits

Notes:
	- Full git-notes support:
		- git_note_read
		- git_note_message/git_note_oid
		- git_note_create
		- git_note_remove
		- git_note_free
		- git_note_foreach

References:
	- Added `git_reference_name_to_oid` helper to resolve
	a reference to its final OID

	- Added `git_reference_cmp` to compare two references with
	a stable order

Remotes:
	- Added support for writing and saving remotes
		- `git_remote_add`
		- `git_remote_save`
		- Setters for all the attributes of a remote
	- Switched remote download to the new streaming packfile indexer
	- Fixed fetch on HTTP and Git under Windows
	- Added `git_remote_supported_url` helper to check if a protocol
	can be accessed by the library
	- Added `git_remote_list`

Repository:
	- Made `git_repository_open` smarter when finding the `.git` folder.
	- Added `git_repository_open_ext` with extra options when
	opening a repository

Revwalk:
	- Added support for pushing/hiding several references through a glob
	- Added helper to push/hide the current HEAD to the walker
	- Added helper to push/hide a single reference to the walker

Status:
	- Greatly improved Status implementation using the new `diff` code
	as a backend

Submodules:
	- Added a partial submodules API to get information about a
	submodule and list all the submodules in a repository
		- git_submodule_foreach
		- git_submodule_lookup

Tag:
	- Added `git_tag_peel` helper to peel a tag to its pointed object
	- Tag messages are now filtered to match Git rules (stripping comments
	and adding proper whitespacing rules)

Tree:
	- Killed the old `git_tree_diff` API, which is replaced by the
	new diff code.

Signed-off-by: Vicent Marti <tanoku@gmail.com>
2012-05-19 01:40:46 +02:00
Vicent Martí
59d91979d8 Merge pull request #710 from libgit2/breaking-changes
Break everything before the release
2012-05-18 13:53:38 -07:00
Vicent Martí
498b72eb6f Merge pull request #711 from schu/fetch-local-dummy
fetch: set dummy function for local fetch
2012-05-18 04:38:15 -07:00
Michael Schubert
a167002f9e fetch: set dummy function for local fetch
Local fetch isn't implemented yet. Don't segfault on call, but set a
dummy for negotiate_fetch and terminate gracefully.

Reported-by: Brad Harder <bch@methodlogic.net>
2012-05-18 12:44:01 +02:00
Vicent Martí
6ec01e6361 Merge pull request #685 from nulltoken/fix/list-remote-branches
branch: retrieve symbolic references when listing the branches
2012-05-17 16:51:17 -07:00
Vicent Martí
904b67e69f errors: Rename error codes 2012-05-18 01:48:50 +02:00
Vicent Martí
e172cf082e errors: Rename the generic return codes 2012-05-18 01:26:26 +02:00
Vicent Martí
2e2e97858d Properly tag all enums with a _t 2012-05-18 01:26:23 +02:00
Vicent Martí
4fbd1c007e refs: git_reference_listall -> git_reference_list 2012-05-18 01:26:16 +02:00
Vicent Martí
fe3bcf7d7a errors: Remove old comments 2012-05-18 01:25:57 +02:00
Vicent Martí
255c38c500 global: Fix unit tests after reordering 2012-05-18 01:25:57 +02:00
Vicent Martí
29e948debe global: Change parameter ordering in API
Consistency is good.
2012-05-18 01:25:57 +02:00
nulltoken
392eced6f0 branch: retrieve symbolic references when listing the branches 2012-05-18 00:26:04 +02:00
Vicent Martí
52695898e5 Merge pull request #709 from arrbee/profiling-with-scottg
Profiling with scottg
2012-05-17 14:46:44 -07:00
Russell Belfer
e3557172af No point in keeping commented out fn 2012-05-17 14:44:17 -07:00
Vicent Martí
88d6e04408 Merge pull request #708 from arrbee/fix-empty-workdir-iterator
Fix workdir iterators on empty directories
2012-05-17 14:25:42 -07:00
Russell Belfer
6e5c4af00e Fix workdir iterators on empty directories
Creating a workdir iterator on a directory with absolutely
no files was returning an error (GIT_ENOTFOUND) instead of
an iterator for nothing.  This fixes that and includes two
new tests that cover that case.
2012-05-17 14:21:10 -07:00
Russell Belfer
a0d959628f Other optimization and warning fixes
This fixes a warning left by the earlier optimization and
addresses one of the other hotspots identified by GProf.
2012-05-17 13:14:17 -07:00
Russell Belfer
b59c73d39a Optimize away git_text_gather_stats in diff
GProf shows `git_text_gather_stats` as the most expensive call
in large diffs.  The function calculates a lot of information
that is not actually used and does not do so in a optimal
order.  This introduces a tuned `git_buf_is_binary` function
that executes the same algorithm in a fraction of the time.
2012-05-17 13:06:20 -07:00
Russell Belfer
706a9974a2 Basic setup for profiling
This fixes the examples so they will build and adds a PROFILE
option to the CMakeFile that enabled gprof info on non-Windows
2012-05-17 13:05:17 -07:00
Vicent Martí
db756d5898 Merge pull request #706 from arrbee/fix_592_again
Fix status for files under ignored dirs
2012-05-16 17:18:17 -07:00
Russell Belfer
bd4ca902b5 Fix status for files under ignored dirs
There was a bug where tracked files inside directories that were
inside ignored directories where not being found by status.  To
make that a little clearer, if you have a .gitignore with:

    ignore/

And then have the following files:

    ignore/dir/tracked     <-- actually a tracked file
    ignore/dir/untracked   <-- should be ignored

Then we would show the tracked file as being removed (because
when we got the to contained item "dir/" inside the ignored
directory, we decided it was safe to skip -- bzzt, wrong!).

This update is much more careful about checking that we are
not skipping over any prefix of a tracked item, regardless of
whether it is ignored or not.

As documented in diff.c, this commit does create behavior that
still differs from core git with regards to the handling of
untracked files contained inside ignored directories.  With
libgit2, those files will just not show up in status or diff.
With core git, those files don't show up in status or diff
either *unless* they are explicitly ignored by a .gitignore
pattern in which case they show up as ignored files.

Needless to say, this is a local behavior difference only, so
it should not be important and (to me) the libgit2 behavior
seems more consistent.
2012-05-16 17:08:59 -07:00
Vicent Martí
38f4f15824 Merge pull request #705 from nulltoken/fix/note_list_callback_signature
notes: make git_note_foreach() callback signature easier to cope with from a binding perspective
2012-05-16 13:43:16 -07:00
nulltoken
ee7680d53b notes: make git_note_foreach() callback signature easier to cope with from a binding perspective 2012-05-16 21:51:45 +02:00
Vicent Martí
9d0011fd83 tree: Naming conventions 2012-05-16 19:24:35 +02:00
Vicent Martí
eb27088462 clar: Fix warning 2012-05-16 19:24:35 +02:00