Comments (12)
@openchung commented on September 10, 2020 4:12 PM:
We use the branch strategy to merge each Feature to the SIT branch, and use git deps to find all the dependencies at each SIT Commit point, Cherry-pick to the UAT branch, but we found that when the amount of commit is quite large, git deps is not work to produce result.
What do you mean exactly here? What doesn't work?
Is there a limitation for git deps?
Yes there are limitations. It only detects textual dependencies which does not guarantee correctness, and this can also sometimes result in a very large dependency tree which can potentially be avoided by manually porting commits between branches in a way which minimises dependencies.
If not, what is the possibility that the results will not run out? Thanks
It is possible that the dependency tree will be extremely large. You should make sure you are using -e
to exclude any commits which have already been ported to the new branch.
from git-deps.
Sir,
For example, in above image, the commit point contains around 360 addition and 688681 deletion, and when try to find the git deps point, it running a very long time (over 30mins and no response), is that the limitation you mentioned? are there any method to enhance the speed/performance, many thanks.
from git-deps.
"It only detects textual dependencies" is that mean the special character in the file will produce error?
For example, sometimes the result is like above, showing utf-8 can not decode error
from git-deps.
@futureweihk commented on September 14, 2020 10:14 AM:
Sir,
![]()
For example, in above image, the commit point contains around 360 addition and 688681 deletion, and when try to find the git deps point, it running a very long time (over 30mins and no response), is that the limitation you mentioned? are there any method to enhance the speed/performance, many thanks.
If the commit is this big, something sounds badly wrong to me. Commits must be as small as possible. git-deps will not work well with huge commits.
from git-deps.
@futureweihk commented on September 14, 2020 10:20 AM:
"It only detects textual dependencies" is that mean the special character in the file will produce error?
For example, sometimes the result is like above, showing utf-8 can not decode error
No that is a completely different issue. It is very important to understand the difference between textual and semantic dependencies, so please read https://github.com/aspiers/git-deps#textual-vs-semantic-independence
from git-deps.
@futureweihk commented on September 14, 2020 10:14 AM:
Sir,
For example, in above image, the commit point contains around 360 addition and 688681 deletion, and when try to find the git deps point, it running a very long time (over 30mins and no response), is that the limitation you mentioned? are there any method to enhance the speed/performance, many thanks.If the commit is this big, something sounds badly wrong to me. Commits must be as small as possible. git-deps will not work well with huge commits.
Thanks for your clarification, could you please suggest are there any suggested limit, like no more than 50 files and 10000 add or deletions?
is the performance related to buffering, I mean when the tree expands, maybe the buffered data is overed the capacity, are there any parameter(maybe in some config file?) to set? thanks
from git-deps.
@futureweihk commented on September 15, 2020 7:27 AM:
Commits must be as small as possible. git-deps will not work well with huge commits.
Thanks for your clarification, could you please suggest are there any suggested limit, like no more than 50 files and 10000 add or deletions?
If it's code then usually I'd say no more than 5 or 10 files and 50 to 100 adds or deletions.
Here are some good links to read:
- https://sethrobertson.github.io/GitBestPractices/
- https://wiki.openstack.org/wiki/GitCommitMessages#Structural_split_of_changes
- https://seesparkbox.com/foundry/atomic_commits_with_git
is the performance related to buffering, I mean when the tree expands, maybe the buffered data is overed the capacity, are there any parameter(maybe in some config file?) to set? thanks
No it's nothing to do with buffering. It's a combination of git blame
being expensive and the fact that the dependency tree will often mushroom in complexity. This is absolutely expected when not following best practices for small commits.
from git-deps.
Many thanks for your patient and detailed responses, I will learn from your reference links first.
@futureweihk commented on September 15, 2020 7:27 AM:
Commits must be as small as possible. git-deps will not work well with huge commits.
Thanks for your clarification, could you please suggest are there any suggested limit, like no more than 50 files and 10000 add or deletions?
If it's code then usually I'd say no more than 5 or 10 files and 50 to 100 adds or deletions.
Here are some good links to read:
- https://sethrobertson.github.io/GitBestPractices/
- https://wiki.openstack.org/wiki/GitCommitMessages#Structural_split_of_changes
- https://seesparkbox.com/foundry/atomic_commits_with_git
is the performance related to buffering, I mean when the tree expands, maybe the buffered data is overed the capacity, are there any parameter(maybe in some config file?) to set? thanks
No it's nothing to do with buffering. It's a combination of
git blame
being expensive and the fact that the dependency tree will often mushroom in complexity. This is absolutely expected when not following best practices for small commits.
from git-deps.
2020-09-16 14:24:51,520 WARN [runner.ScriptBindingsManager]: Error executing command: sh /log/jirasoftware-home/scripts/gitdeps.sh 2659_gib 3f9d22578c5292d293b210f24c6545180616cd5b UAT_GIB.202010.01_cherrypick_refs
Traceback (most recent call last):
File "/usr/local/bin/git-deps", line 8, in
sys.exit(run())
File "/usr/local/lib/python3.6/site-packages/git_deps/cli.py", line 141, in run
main(sys.argv[1:])
File "/usr/local/lib/python3.6/site-packages/git_deps/cli.py", line 135, in main
cli(options, args)
File "/usr/local/lib/python3.6/site-packages/git_deps/cli.py", line 119, in cli
detector.find_dependencies(rev)
File "/usr/local/lib/python3.6/site-packages/git_deps/detector.py", line 122, in find_dependencies
self.find_dependencies_with_parent(dependent, parent)
File "/usr/local/lib/python3.6/site-packages/git_deps/detector.py", line 147, in find_dependencies_with_parent
self.blame_hunk(dependent, parent, path, hunk)
File "/usr/local/lib/python3.6/site-packages/git_deps/detector.py", line 172, in blame_hunk
blame = subprocess.check_output(cmd, universal_newlines=True)
File "/usr/local/lib/python3.6/subprocess.py", line 356, in check_output
**kwargs).stdout
File "/usr/local/lib/python3.6/subprocess.py", line 425, in run
stdout, stderr = process.communicate(input, timeout=timeout)
File "/usr/local/lib/python3.6/subprocess.py", line 850, in communicate
stdout = self.stdout.read()
File "/usr/local/lib/python3.6/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 498: invalid start byte
Dear Sir, have you ever seen error message like above? we can not find the reason for such error
from git-deps.
This looks like a Python 3 / UTF-8 issue which is unrelated to the discussion above. Please file a separate issue for this.
from git-deps.
As the above questions have been answered, I will close this issue now. We can cover other topics in separate issues.
from git-deps.
OK,thanks
As the above questions have been answered, I will close this issue now. We can cover other topics in separate issues.
from git-deps.
Related Issues (20)
- Excluding commits previously cherry-picked. HOT 2
- UTF-8 decode error HOT 7
- switch from git rev-parse to pygit2 Repository.revparse
- error while install HOT 1
- Submodules not treated properly leading to crash/failure
- Problem with binary file
- git-deps fails to work with Flask >= 2.2 (safe_join has been removed in Flask) HOT 2
- Error while trying to install via pip: "AttributeError: module 'pypandoc' has no attribute 'convert'"
- python-six is not required HOT 1
- Pandoc deprecated a call... install errors out (pip install) HOT 2
- Project abandoned? pip install fails (Python 3.10.8) HOT 6
- switch from Travis CI to GitHub Actions
- Doesn't deal well with large repos or lots of changes, even with `-e` HOT 10
- $ git: 'deps' is not a git command. See 'git --help'. HOT 8
- Error when fetching the dependencies of the root commit
- Errors encountered installing git-deps under Windows HOT 6
- Add "exclude" feature to visualization HOT 1
- Error when analysing dependencies in a 'real' repository (MacOS) HOT 7
- updating INSTALL.md for python 3 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from git-deps.