| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \
| |_|/
|/| | |
Make submodules externally refcounted
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This cleans up some places I missed that could hold onto submodule
references and cleans up the way in which the repository cache is
both reloaded and released so that existing submodule references
aren't destroyed inappropriately.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`git_submodule` objects were already refcounted internally in case
the submodule name was different from the path at which it was
stored. This makes that refcounting externally used as well, so
`git_submodule_lookup` and `git_submodule_add_setup` return an
object that requires a `git_submodule_free` when done.
|
|\ \ \
| | | |
| | | | |
Update behavior for untracked contained repositories
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a directory containing a .git directory (or even just a plain
gitlink) was found, libgit2 was going out of its way to treat it
specially. This seemed like it was necessary because the diff
code was not originally emulating Git's behavior for untracked
directories correctly (i.e. scanning for ignored vs untracked items
inside). Now that libgit2 diff mimics Git's untracked directory
behavior, the special handling for contained Git repos is actually
incorrect and this commit rips it out.
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Callback function to hide commit and its parents in revision walker
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Refactor the `git_merge` API
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This survived the last round of culling, as the signature is only in the
comments.
|
| | |
| | |
| | |
| | | |
Fixes issue #2196
|
|\ \ \
| | | |
| | | | |
revwalk: don't try to find merge bases when there can be none
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As a way to speed up the cases where we need to hide some commits, we
find out what the merge bases are so we know to stop marking commits as
uninteresting and avoid walking down a potentially very large amount of
commits which we will never see. There are however two oversights in
current code.
The merge-base finding algorithm fails to recognize that if it is only
given one commit, there can be no merge base. It instead walks down the
whole ancestor chain needlessly. Make it return an empty list
immediately in this situation.
The revwalk does not know whether the user has asked to hide any commits
at all. In situation where the user pushes multiple commits but doesn't
hide any, the above fix wouldn't do the trick. Keep track of whether the
user wants to hide any commits and only run the merge-base finding
algorithm when it's needed.
|
| | | |
|
|/ /
| |
| |
| |
| | |
On bare by default, or when core.logallrefupdates is false, we must not
write the reflog.
|
| |
| |
| |
| |
| | |
Given HEAD -> master -> foo, when updating foo's reflog we should also
update HEAD's, as it's considered the current branch.
|
| |
| |
| |
| |
| |
| | |
The reflog append function was overzealous in its checking. When passed
an old and new ids, it should not do any checking, but just serialize
the data to a reflog entry.
|
| |
| |
| |
| | |
Remove some duplicated logic.
|
| |
| |
| |
| |
| | |
If the caller wants to update a ref to point to the same target as it
currently has, we should return early and avoid writing to the reflog.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The existing ones lack checking zeroed ids when switching back from an
unborn branch as well as what happens when detaching.
The reflog appending function mistakenly wrote zeros when dealing with a
detached HEAD. This explicitly checks for those situations and fixes
them.
|
|\ \
| | |
| | | |
Implement git_merge_base_octopus
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Seamless support for NTLM/Kerberos auth on Windows
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When we update the current branch, we must also append to HEAD's reflog
to keep them in sync.
This is a bit of a hack, but as git.git says, it covers 100% of
default cases.
|
|/ / |
|
|/
|
|
|
|
| |
If the pqueue comparison fn returned just 0 or 1 (think "a<b")
then the sort order of returned items could be wrong because there
was a "< 0" that really needed to be "<= 0". Yikes!!!
|
| |
|
|\
| |
| | |
Add git_submodule_resolve_url()
|
| | |
|
|/ |
|
|\
| |
| | |
Rename options structures
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Fun with memory access
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously the hunk_byfinalline_search_cmp function was called with different
data types (size_t and uint32_t) for the key argument but expected only the
former resulting in an invalid memory access when passed the latter on a 64 bit
machine.
The following patch makes sure that the function is called and works with the
same type (size_t).
|
| |/ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
We look up a reference in order to figure out if it's the current
branch, which we need to free once we're done with the check.
As a bonus, only perform the check when we're passed the force flag, as
it's a useless check otherwise.
|