aboutsummaryrefslogtreecommitdiffstats
path: root/git_deps
Commit message (Collapse)AuthorAgeFilesLines
* Fix some flake8 issuesAdam Spiers2021-04-031-9/+9
|
* Don't totally ignore KeyboardInterruptAdam Spiers2021-04-031-1/+1
| | | | | | | | Commit 2a05400e2 ignored KeyboardInterrupt. I'm *guessing* I did that to avoid an ugly stacktrace, but even if so, the user's desire to interrupt execution should not be ignored in this way. Fixes #83 and #89.
* Merge pull request #100 from ↵Adam Spiers2021-04-031-1/+1
|\ | | | | | | | | aspiers/dependabot/npm_and_yarn/git_deps/html/jquery-3.5.0 Bump jquery from 3.0.0 to 3.5.0 in /git_deps/html
| * Bump jquery from 3.0.0 to 3.5.0 in /git_deps/htmldependabot[bot]2020-04-291-1/+1
| | | | | | | | | | | | | | Bumps [jquery](https://github.com/jquery/jquery) from 3.0.0 to 3.5.0. - [Release notes](https://github.com/jquery/jquery/releases) - [Commits](https://github.com/jquery/jquery/compare/3.0.0...3.5.0) Signed-off-by: dependabot[bot] <support@github.com>
* | Use line-buffering on output (#87)Adam Spiers2021-04-031-1/+1
|/ | | | | | | | | | Use explicit line buffering of STDOUT. Originally buffering was disabled by #81 to allow better interaction with tee(1), but this breaks Python 3 as per #87. So use line buffering instead. Closes #87 and #93.
* Merge pull request #81 from bmwiedemann/unbufferedAdam Spiers2019-01-211-0/+2
|\ | | | | Use unbuffered IO
| * Use unbuffered IOBernhard M. Wiedemann2019-01-101-0/+2
| | | | | | | | | | | | | | Without this patch, git-deps | tee $FILE only produces output in 4KB chunks so when you have to kill the process after a day, you are left with incomplete output.
* | Don't crash with commit messages that aren't valid utf-8Michael Stefaniuc2019-01-201-1/+5
|/
* ALGORITHM CHANGE: only diff tree with first parentAdam Spiers2018-10-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Running git deps on FOO^! is effectively answering the question "which commits would I need in order to be able to cleanly cherry-pick commit FOO?" Drilling down further, that could be rephrased more precisely as "which commits would I need in my current branch in order to be able to cleanly apply the diff which commit FOO applies to its parent?" However, in the case where FOO is a merge commit with multiple parents, typically the first parent P1 is the parent which is contained by the merge's target branch B1. That means that the merge commit FOO has the effect of applying the diff between P1's tree and the FOO's tree to P1. This could be expressed as: tree(P1) + diff(tree(P1), tree(FOO)) == tree(FOO) Therefore the question git-deps needs to answer when operating on a commit with multiple parents is "which commits would I need in my current branch in order to be able to cleanly apply diff(tree(P1), tree(FOO)) to it?" However, the current algorithm runs the blame analysis not only on diff(tree(P1), tree(FOO)), but on diff(tree(Px), tree(FOO)) for *every* parent. This is problematic, because for instance if the target branch contains commits which are not on P2's branch, then diff(tree(P2), tree(FOO)) will regress any changes provided by those commits. This will introduce extra dependencies which incorrectly answer the above question we are trying to answer. Therefore change the algorithm to only diff against the first parent. This is very similar in nature to the -m option of git cherry-pick: https://stackoverflow.com/questions/12626754/git-cherry-pick-syntax-and-merge-branches/12628579#12628579 In the future it may be desirable to add an analogous -m option to git-deps. Sem-Ver: api-break
* Merge remote-tracking branch 'github/master'Adam Spiers2018-09-281-0/+3
|\
| * add reminder about CLI usge help duplicationAdam Spiers2018-06-151-0/+3
| |
* | fix bug with -l when analyzing multiple commitsAdam Spiers2018-09-111-0/+3
| | | | | | | | | | If multiple commits depend on commit X, then the git log output for commit X will only be shown when the first one is discovered.
* | fix undefined parent variable bugAdam Spiers2018-09-111-4/+6
| | | | | | | | | | This was introduced by recent refactoring which split blame_hunk() into several smaller methods.
* | move more important debug to INFO levelAdam Spiers2018-09-111-14/+14
| | | | | | | | | | In the future, this will let us control the verbosity of the debug output.
* | clarify that the hunk gets listed later in the debugAdam Spiers2018-09-101-1/+1
| |
* | rename blame_hunk to blame_diff_hunkAdam Spiers2018-09-101-2/+2
| | | | | | | | This makes it a bit clearer where the hunk came from.
* | tweak indentation to make debug easier to followAdam Spiers2018-09-091-3/+3
| |
* | fix indentation when debugging hunksAdam Spiers2018-09-091-1/+1
| |
* | extract process_hunk_line() methodAdam Spiers2018-09-091-24/+30
| |
* | extract debug_hunk() methodAdam Spiers2018-09-091-0/+5
| |
* | extract record_dependency_source() methodAdam Spiers2018-09-091-19/+26
| |
* | extract process_new_dependency() methodAdam Spiers2018-09-091-30/+37
| |
* | extract register_new_dependent() methodAdam Spiers2018-09-091-5/+8
| |
* | reflow some doc stringsAdam Spiers2018-09-091-11/+11
| |
* | extract run_blame() methodAdam Spiers2018-09-091-7/+10
|/
* fix gitfile-handler to work on Python 3Adam Spiers2018-05-171-1/+5
|
* update dagre based on security advice from npmAdam Spiers2018-05-171-5/+5
|
* newer npm made whitespace consistent in package.jsonAdam Spiers2018-05-161-1/+1
|
* remove unneeded metadata variablesAdam Spiers2018-05-161-4/+0
| | | | https://github.com/blue-yonder/pyscaffold/issues/%3162
* update JQuery to 3.0.x1.0.0rc41.0.0Adam Spiers2018-05-161-1/+1
| | | | | | According to GitHub this will avoid a couple of known security vulnerabilities, although I don't think they are likely to have much impact in this context anyway.
* fix Python 3 uses of subprocess.check_outputAdam Spiers2018-05-163-6/+8
| | | | https://stackoverflow.com/questions/15817420/subprocess-and-type-str-doesnt-support-the-buffer-api/15817457#15817457
* fix broken importAdam Spiers2018-05-161-1/+1
| | | | | | NO idea how this worked before. Fixes #72.
* fix flake8 issuesAdam Spiers2018-05-151-1/+1
|
* StandardError was removed in Python 3Adam Spiers2018-05-151-1/+1
|
* notify of new dependency even if target already doneAdam Spiers2018-05-151-8/+12
| | | | | | | | | When a new dependency is discovered, its target may have already been placed on the TODO list via a different source (and maybe even analysed for dependencies), e.g. if find_dependencies() was previously called on it, or if it was previously found via recursion. In this case we still need to notify listeners of the dependency, even though we won't add it to the TODO list.
* allow DependencyDetector to be reusedAdam Spiers2018-05-151-0/+6
| | | | | | | | Avoid any errors if find_dependencies() is called repeatedly. Previously this could fail when recursion was enabled, because a commit could be processed via recursion, and then again via a subsequent call to the TODO list, at which point the sanity check that each blame line hadn't been seen before would fail.
* improve blame line trackingAdam Spiers2018-05-151-4/+9
|
* use dependent_sha1 temporary variableAdam Spiers2018-05-151-6/+7
| | | | Avoid calling hex() repeatedly
* improve debuggingAdam Spiers2018-05-151-24/+32
|
* move Repository instantiation to GitUtilsAdam Spiers2018-05-152-8/+15
|
* extract GitUtils.ref_commit() functionAdam Spiers2018-05-152-7/+16
|
* extract commit_summary() function into gitutils.pyAdam Spiers2018-05-152-2/+6
| | | | This helper can be reused elsewhere, e.g. in git-explode.
* move oneline() to gitutils.pyAdam Spiers2018-05-152-6/+9
| | | | | It has nothing to do with DependencyDetector, and this will let us reuse it from git-explode too.
* fix gitfile handler to work when # is URL-encodedAdam Spiers2018-05-151-0/+27
| | | | | For some reason, Chrome sometimes passes the URL with the # URL-encoded as %23.
* reuse abort from utils.pyAdam Spiers2018-05-151-4/+1
|
* fix handling of annotated tagsAdam Spiers2018-05-151-1/+4
| | | | | | pygit2.revparse_single(annotated_tag) returns a pygit2.Tag object, and this extra layer of indirection has to be resolved to obtain the pygit2.Commit.
* hack to get webserver working againAdam Spiers2018-05-151-0/+1
| | | | | webcola requires d3 which is not there before bundle.js is loaded. But why wasn't this ever a problem before?
* output webserver root when debuggingAdam Spiers2018-05-151-1/+4
|
* move instantiation of standard logger to utils.pyAdam Spiers2018-05-152-8/+10
|
* move debug logger setup to utils.pyAdam Spiers2018-05-152-13/+15
| | | | This is cleaner and will allow it to be reused elsewhere.