Defect #5628
Wrong commit range in git log command
Status: | Closed | Start date: | 2010-06-01 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 100% | ||
Category: | SCM | |||
Target version: | 1.0.1 | |||
Resolution: | Affected version: |
Description
Special file:
lib/redmine/scm/adapters/git_adapter.rb
Special coding:
def revisions(path, identifier_from, identifier_to, options={}) revisions = Revisions.new cmd = "#{GIT_BIN} --git-dir #{target('')} log --raw --date=iso --pretty=fuller" cmd << " --reverse" if options[:reverse] cmd << " --all" if options[:all] cmd << " -n #{options[:limit]} " if options[:limit] cmd << " #{shell_quote(identifier_from + '..')} " if identifier_from cmd << " #{shell_quote identifier_to} " if identifier_to
the correct git log command are following:
git log identifier_from..identifier_to
but the above coding result is
git log identifier_from.. identifier_to
It lead to that all log from identifier_from will be displayed. All of these are caused by extra spaces, which leads to git ignore identifier_to as the limit of the range.
Example:
git log 2efdef32^..2efdef32 Only 2efdef32 commit will be displayed. git log 2efdef32^.. 2efdef32 All commits from 2efdef32 will displayed.
Related issues
Associated revisions
Fixed wrong commit range in git log command. #5628
History
#1
Updated by Felix Schäfer over 10 years ago
- Subject changed from there is an coding error to Wrong commit range in git log command
- Assignee set to Eric Davis
- Target version set to 1.0.0 (RC)
I don't use git, but as far as I understand the man page, this is valid.
#2
Updated by S. Christoffer Eliesen over 10 years ago
I can confirm the behaviour outside of redmine. Attached patch should fix the problem.
#3
Updated by Sheng Wang over 10 years ago
Great work! :)
I can confirm the behaviour outside of redmine.
I did confirm the behaviour outside of redmine. But these code that is not strict may lead to some unexpected error in future,if someone call these code.
#4
Updated by Eric Davis over 10 years ago
- Assignee deleted (
Eric Davis) - Target version deleted (
1.0.0 (RC))
Can someone update Redmine's test git repository and provide a unit test that exposes this bug?
#5
Updated by Jean-Baptiste Barth over 10 years ago
- File 5628_git.diff
added
I'd prefer playing with spaces on actual code, it seems to me a bit less risky.
Eric: no need to change actual repo in my opinion, but I added a unit test in attached diff (git format). Let me know what do you think.
#6
Updated by Jean-Baptiste Barth over 10 years ago
- Status changed from New to Resolved
- Assignee set to Jean-Baptiste Barth
- Target version set to 1.0.1
- % Done changed from 0 to 100
- Affected version (unused) set to 1.0.0-RC
Applied in r3925
#7
Updated by Eric Davis over 10 years ago
- Status changed from Resolved to Closed
Merged to 1.0-stable for release in 1.0.1.
#8
Updated by Toshi MARUYAMA almost 10 years ago
This issue is not fixed on Windows.
I create new issue #7657.