|
add2dabb
|
2022-01-30T22:25:59
|
|
revparse: support bare '@'
A bare '@' revision syntax represents HEAD. Support it as such.
|
|
7bb206a7
|
2021-11-23T10:12:29
|
|
Merge branch 'main' into better-compatiblity-for-at-time-notation
Conflicts:
src/revparse.c
|
|
b2c40314
|
2021-11-18T12:19:32
|
|
date: make it a proper `git_date` utility class
Instead of `git__date`, just use `git_date`.
|
|
540b02f3
|
2021-10-22T23:21:22
|
|
Add TODO comment for emit a warning
|
|
6c0d5366
|
2021-10-22T07:54:12
|
|
Cause error when date parsing is failed
|
|
776a6a8e
|
2021-10-22T00:09:39
|
|
Return the oldest reflog entry on revparse when older time is given
For better compatibility with git command which returns the oldest
log entry with a warning message.
|
|
f0e693b1
|
2021-09-07T17:53:49
|
|
str: introduce `git_str` for internal, `git_buf` is external
libgit2 has two distinct requirements that were previously solved by
`git_buf`. We require:
1. A general purpose string class that provides a number of utility APIs
for manipulating data (eg, concatenating, truncating, etc).
2. A structure that we can use to return strings to callers that they
can take ownership of.
By using a single class (`git_buf`) for both of these purposes, we have
confused the API to the point that refactorings are difficult and
reasoning about correctness is also difficult.
Move the utility class `git_buf` to be called `git_str`: this represents
its general purpose, as an internal string buffer class. The name also
is an homage to Junio Hamano ("gitstr").
The public API remains `git_buf`, and has a much smaller footprint. It
is generally only used as an "out" param with strict requirements that
follow the documentation. (Exceptions exist for some legacy APIs to
avoid breaking callers unnecessarily.)
Utility functions exist to convert a user-specified `git_buf` to a
`git_str` so that we can call internal functions, then converting it
back again.
|
|
379c4646
|
2021-09-09T19:49:04
|
|
Fix coding style for pointer
Make some syntax change to follow coding style.
|
|
4732e030
|
2021-01-31T00:36:54
|
|
revspec: rename git_revparse_mode_t to git_revspec_t
The information about the type of a revision spec is not information
about the parser. Name it accordingly, so that `git_revparse_mode_t`
is now `git_revspec_t`. Deprecate the old name.
|
|
5bd139e9
|
2020-04-05T21:57:22
|
|
revparse: use GIT_ASSERT
|
|
74520b91
|
2020-06-13T19:38:11
|
|
Merge pull request #5552 from libgit2/pks/small-fixes
Random code cleanups and fixes
|
|
a6c9e0b3
|
2020-06-08T12:40:47
|
|
tree-wide: mark local functions as static
We've accumulated quite some functions which are never used outside of
their respective code unit, but which are lacking the `static` keyword.
Add it to reduce their linkage scope and allow the compiler to optimize
better.
|
|
45901d3e
|
2020-06-08T12:57:16
|
|
revparse: remove superfluous tab character
|
|
c146374c
|
2020-06-08T12:54:26
|
|
revparse: detect out-of-memory cases when parsing curly brace contents
When extracting curly braces (e.g. the "upstream" part in
"HEAD@{upstream}"), we put the curly braces' contents into a `git_buf`
structure, but don't check the return value of `git_buf_putc`. So when
we run out-of-memory, we'll use a partially filled buffer without
noticing.
Let's fix this issue by checking `git_buf_putc`'s return value.
|
|
cd5e33fb
|
2019-11-06T11:08:23
|
|
global: DRY includes of assert.h
|
|
7aacf027
|
2019-09-13T08:55:33
|
|
global: convert all users of POSIX regex to use our new regexp API
The old POSIX regex API has been superseded by our new regexp API.
Convert all users to make use of the new one.
|
|
02683b20
|
2019-01-12T23:06:39
|
|
regexec: prefix all regexec function calls with p_
Prefix all the calls to the the regexec family of functions with `p_`.
This allows us to swap out all the regular expression functions with our
own implementation. Move the declarations to `posix_regex.h` for
simpler inclusion.
|
|
f673e232
|
2018-12-27T13:47:34
|
|
git_error: use new names in internal APIs and usage
Move to the `git_error` name in the internal API for error-related
functions.
|
|
cd350852
|
2019-01-17T10:40:13
|
|
object_type: GIT_OBJECT_BAD is now GIT_OBJECT_INVALID
We use the term "invalid" to refer to bad or malformed data, eg
`GIT_REF_INVALID` and `GIT_EINVALIDSPEC`. Since we're changing the
names of the `git_object_t`s in this release, update it to be
`GIT_OBJECT_INVALID` instead of `BAD`.
|
|
168fe39b
|
2018-11-28T14:26:57
|
|
object_type: use new enumeration names
Use the new object_type enumeration names within the codebase.
|
|
2613fbb2
|
2018-10-18T11:58:14
|
|
global: replace remaining use of `git__strtol32`
Replace remaining uses of the `git__strtol32` function. While these uses
are all safe as the strings were either sanitized or from a trusted
source, we want to remove `git__strtol32` altogether to avoid future
misuse.
|
|
ecf4f33a
|
2018-02-08T11:14:48
|
|
Convert usage of `git_buf_free` to new `git_buf_dispose`
|
|
06b8a40f
|
2018-02-16T11:29:46
|
|
Explicitly mark fallthrough cases with comments
A lot of compilers nowadays generate warnings when there are cases in a
switch statement which implicitly fall through to the next case. To
avoid this warning, the last line in the case that is falling through
can have a comment matching a regular expression, where one possible
comment body would be `/* fall through */`.
An alternative to the comment would be an explicit attribute like e.g.
`[[clang::fallthrough]` or `__attribute__ ((fallthrough))`. But GCC only
introduced support for such an attribute recently with GCC 7. Thus, and
also because the fallthrough comment is supported by most compilers, we
settle for using comments instead.
One shortcoming of that method is that compilers are very strict about
that. Most interestingly, that comment _really_ has to be the last line.
In case a closing brace follows the comment, the heuristic will fail.
|
|
0c7f49dd
|
2017-06-30T13:39:01
|
|
Make sure to always include "common.h" first
Next to including several files, our "common.h" header also declares
various macros which are then used throughout the project. As such, we
have to make sure to always include this file first in all
implementation files. Otherwise, we might encounter problems or even
silent behavioural differences due to macros or defines not being
defined as they should be. So in fact, our header and implementation
files should make sure to always include "common.h" first.
This commit does so by establishing a common include pattern. Header
files inside of "src" will now always include "common.h" as its first
other file, separated by a newline from all the other includes to make
it stand out as special. There are two cases for the implementation
files. If they do have a matching header file, they will always include
this one first, leading to "common.h" being transitively included as
first file. If they do not have a matching header file, they instead
include "common.h" as first file themselves.
This fixes the outlined problems and will become our standard practice
for header and source files inside of the "src/" from now on.
|
|
8b107dc5
|
2017-05-03T11:20:57
|
|
revparse: support open-ended ranges
Support '..' and '...' ranges where one side is not specified.
The unspecified side defaults to HEAD.
Closes #4223
|
|
909d5494
|
2016-12-29T12:25:15
|
|
giterr_set: consistent error messages
Error messages should be sentence fragments, and therefore:
1. Should not begin with a capital letter,
2. Should not conclude with punctuation, and
3. Should not end a sentence and begin a new one
|
|
ab96ca55
|
2016-10-06T13:15:31
|
|
Make sure we use the `C` locale for `regcomp` on macOS.
|
|
1e71354e
|
2014-09-05T03:24:43
|
|
reflog: Error handling on empty reflog
|
|
c74077d1
|
2014-02-02T12:08:18
|
|
revparse: do look at all refs when matching text
Now that we no longer fail to push non-commits on a glob, let's search
on all refs when we rev-parse syntax asks us to match text.
|
|
e7c66fc8
|
2014-01-20T23:32:18
|
|
git_reflog_entry_message can be null
|
|
b976f3c2
|
2013-08-19T13:01:49
|
|
reflog: move the reflog implementation into refdb_fs
References and their logs are logically coupled, let's make it so in
the code by moving the fs-based reflog implementation to live next to
the fs-based refs one.
As part of the change, make the function take names rather than
references, as only the names are relevant when looking up and
handling reflogs.
|
|
8cf80525
|
2013-09-11T20:13:59
|
|
errors: Fix format of some error messages
|
|
1634df8c
|
2013-09-07T17:31:30
|
|
revparse: Simplify error handling
|
|
a8d67afe
|
2013-09-07T17:21:41
|
|
revparse: Prevent unnecessary odb backend calls
|
|
6d69fbce
|
2013-08-19T13:04:05
|
|
Revparse does not handle refspecs
|
|
1616fa68
|
2013-08-15T17:25:05
|
|
revparse: Use more idiomatic error value test
|
|
899ec41f
|
2013-08-15T16:25:48
|
|
revparse: Free left side of invalid range revspecs
This fixes a small memory leak in git_revparse where early returns on
errors from git_revparse_single cause a free() on the (reallocated) left
side of the revspec to be skipped.
|
|
80fd31fa
|
2013-07-13T13:30:23
|
|
revparse: Don't return a reference when asked for a git object
Fix #1722
|
|
37f66e82
|
2013-06-12T15:21:21
|
|
Fix Windows warnings
This fixes problems with missing function prototypes and 64-bit
data issues on Windows.
|
|
f672cd2a
|
2013-05-10T20:15:57
|
|
revparse: Make revparse_ext() return git_reference from names as well
|
|
e841c533
|
2013-05-09T16:42:39
|
|
revparse: Introduce git_revparse_ext()
Expose a way to retrieve, along with the target git_object, the reference
pointed at by some revparse expression (`@{<-n>}` or
`<branchname>@{upstream}` syntax).
|
|
dcaa898d
|
2013-05-09T16:52:04
|
|
revparse: Simplify temporary reference freeing
|
|
1fed6b07
|
2013-05-13T21:57:37
|
|
Fix trailing whitespaces
|
|
98d633cc
|
2013-05-07T23:28:21
|
|
Expose git_reference_dwim
Extract this function out of the rev-parse code to be able to DWIM a
reference instead of its target.
|
|
f470b00b
|
2013-05-01T15:48:40
|
|
Fix one error not reported in revparse
There are many paths through revparse that may return an error
code without reporting an error, I believe. This fixes one of
them. Because of the backtracking in revparse, it is pretty
complicated to fix the others.
|
|
2aee1aa4
|
2013-04-18T14:35:13
|
|
Fix uninitialized var warnings
|
|
cbda09d0
|
2013-04-15T23:40:46
|
|
git_revision -> git_revspec
|
|
36c2dfed
|
2013-04-15T23:32:40
|
|
Is this crazy?
|
|
d064c747
|
2013-04-15T23:18:24
|
|
Merge remote-tracking branch 'ben/unified-revparse' into development
|
|
299a224b
|
2013-04-15T12:00:04
|
|
Change git_revparse to output git_object pointers
This will probably prevent many lookup/free
operations in calling code.
|
|
4291ad07
|
2013-04-15T11:42:34
|
|
Reintroduce git_revparse_single.
|
|
ea8bac37
|
2013-04-11T06:34:59
|
|
Merge pull request #1450 from carlosmn/branch-upstream
Branch upstream configuration
|
|
575a54db
|
2013-04-10T16:55:29
|
|
object: Export git_object_dup
|
|
1aa21fe3
|
2013-04-09T05:03:51
|
|
Deprecate git_revparse_single and _rangelike
|
|
8480eef7
|
2013-03-11T20:27:16
|
|
Implement unified git_revparse
|
|
d9ecaf8c
|
2013-04-07T07:22:38
|
|
Merge remote-tracking branch 'gnprice/revwalk' into development
|
|
b208d900
|
2013-03-20T10:01:58
|
|
revparse: Parse range-like syntax
Signed-off-by: Greg Price <price@mit.edu>
|
|
a258d8e3
|
2013-03-30T03:39:19
|
|
branch: rename 'tracking' to 'upstream'
The term 'tracking' is overloaded. Help distinguish what we mean by
using 'upstream' for this part of the library.
|
|
10c06114
|
2013-03-17T04:46:46
|
|
Several warnings detected by static code analyzer fixed
Implicit type conversion argument of function to size_t type
Suspicious sequence of types castings: size_t -> int -> size_t
Consider reviewing the expression of the 'A = B == C' kind. The expression is calculated as following: 'A = (B == C)'
Unsigned type is never < 0
|
|
d00d5464
|
2013-03-01T15:37:33
|
|
immutable references and a pluggable ref database
|
|
0e8e5a61
|
2013-02-03T11:44:26
|
|
revparse: Lookup sha before branch
|
|
545b479a
|
2013-02-02T17:36:20
|
|
revparse: Lookup branch before described tag
Fix #1306
|
|
359fc2d2
|
2013-01-08T17:07:25
|
|
update copyrights
|
|
cc146626
|
2012-11-19T19:00:46
|
|
revparse: Deploy EINVALIDSPEC usage
|
|
a8122b5d
|
2012-11-21T15:39:03
|
|
Fix warnings on Win64 build
|
|
2508cc66
|
2012-11-18T21:38:08
|
|
Rename ref and reflog apis for consistency
|
|
0066955d
|
2012-11-18T04:27:49
|
|
Fix a couple of warnings
|
|
b15df1d9
|
2012-11-17T18:29:51
|
|
reflog: make entry_byindex() and drop() git compliant
Passing 0 as the index now retrieves the most recent entry instead
of the oldest one.
|
|
5912d74c
|
2012-10-18T22:25:27
|
|
revparse: properly handle refnames containing a @
Fix #994
|
|
74a24005
|
2012-09-21T10:28:20
|
|
refs: use constants for well-known names
|
|
77e06d7e
|
2012-09-17T07:11:32
|
|
refs: introduce git_reference_is_valid_name()
|
|
f335ecd6
|
2012-08-30T14:24:16
|
|
Diff iterators
This refactors the diff output code so that an iterator object
can be used to traverse and generate the diffs, instead of just
the `foreach()` style with callbacks. The code has been rearranged
so that the two styles can still share most functions.
This also replaces `GIT_REVWALKOVER` with `GIT_ITEROVER` and uses
that as a common error code for marking the end of iteration when
using a iterator style of object.
|
|
e25dda51
|
2012-08-02T01:38:30
|
|
Merge remote-tracking branch 'nulltoken/topic/amd64-compat' into development
Conflicts:
src/netops.c
src/netops.h
src/oid.c
|
|
b8457baa
|
2012-07-24T07:57:58
|
|
portability: Improve x86/amd64 compatibility
|
|
fb910281
|
2012-07-20T16:38:54
|
|
branch: introduce git_branch_tracking()
|
|
7e48635d
|
2012-07-23T21:56:06
|
|
revparse: initialize 'parsed' in case the user doesn't give a number with the @-notation
|
|
279b45b0
|
2012-07-23T21:22:53
|
|
revparse: don't allow an empty string
Asking the library for "" used to give HEAD, but that's trying to
impose a default at the wrong layer. Make it fail.
|
|
e2c81fca
|
2012-07-15T11:59:31
|
|
revparse: deploy git_object_peel()
|
|
b8748c12
|
2012-07-15T00:46:26
|
|
revparse: enhance parsing engine
|
|
b5f90115
|
2012-07-12T22:31:53
|
|
revparse: fix propagation of error
|
|
5a6f31f2
|
2012-07-12T13:20:29
|
|
revparse: only allow decimal specifiers in carete and tilde synatx
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.
|
|
d1b7921a
|
2012-07-12T11:46:20
|
|
revparse: fix disambiguation of refs and abbrev oids
|
|
bb89cf94
|
2012-07-12T10:57:31
|
|
revparse: simplify handling of the colon syntax
|
|
12595ab8
|
2012-07-12T00:52:01
|
|
revparse: deploy git_reference_remote_tracking_from_branch()
|
|
2d012c0c
|
2012-07-11T16:52:02
|
|
revparse: deploy git_commit_nth_gen_ancestor()
|
|
8f17ed80
|
2012-07-10T20:52:56
|
|
revparse: simplify the parsing of described object
|
|
3e82d6c6
|
2012-07-07T08:25:39
|
|
revparse: unfound reference return ENOTFOUND
|
|
b8460c20
|
2012-07-06T23:37:44
|
|
revparse: do not segfault when retrieving the last entry
|
|
e7279381
|
2012-07-06T21:25:42
|
|
revparse: fix disambiguation of refs
|
|
805c8159
|
2012-07-06T20:44:17
|
|
revparse: unfound previous head return ENOTFOUND
|
|
6a5136e5
|
2012-07-06T12:47:14
|
|
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.
|
|
29f72aa6
|
2012-07-04T22:02:54
|
|
revparse: leverage git__isdigit()
|
|
cab65c2b
|
2012-07-05T22:26:14
|
|
revparse: detect incorrect "refname@{-n}" syntax
|
|
494ae940
|
2012-07-02T17:51:02
|
|
revparse: fix parsing of date specifiers
|
|
52b938d5
|
2012-06-29T17:06:38
|
|
revparse: unfound reflog entry returns ENOTFOUND
|
|
08ac23a5
|
2012-06-29T17:02:29
|
|
revparse: unfound reflog ref returns ENOTFOUND
|
|
4de89ce7
|
2012-06-29T16:51:46
|
|
revparse: unfound partially-named ref returns ENOTFOUND
|
|
0e7af9e7
|
2012-06-28T18:04:01
|
|
revparse: unfound nth parent returns ENOTFOUND
|
|
0d23c62c
|
2012-06-28T11:09:16
|
|
revparse: handle specs with caret and colon
|
|
5b68ba7e
|
2012-06-27T17:27:38
|
|
revparse: unfound treepath returns ENOTFOUND
|