Defect #5628

Wrong commit range in git log command

Added by Sheng Wang over 1 year ago. Updated 12 months ago.

Status:Closed Start date:2010-06-01
Priority:Normal Due date:
Assignee:Jean-Baptiste Barth % Done:

100%

Category:SCM
Target version:1.0.1
Affected version:1.0.0-RC Resolution:

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.

0001-git_adapter.rb-Fix-whitespace-in-git-command.patch (1.6 kB) S. Christoffer Eliesen, 2010-06-24 22:41

5628_git.diff (1.9 kB) Jean-Baptiste Barth, 2010-06-26 11:45


Related issues

related to Defect #7657: Wrong commit range in git log command on Windows Closed 2011-02-18

Associated revisions

Revision 3925
Added by Jean-Baptiste Barth over 1 year ago

Fixed wrong commit range in git log command. #5628

History

Updated by Felix Schäfer over 1 year 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.

Updated by S. Christoffer Eliesen over 1 year ago

I can confirm the behaviour outside of redmine. Attached patch should fix the problem.

Updated by Sheng Wang over 1 year 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.

Updated by Eric Davis over 1 year 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?

Updated by Jean-Baptiste Barth over 1 year ago

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.

Updated by Jean-Baptiste Barth over 1 year 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 set to 1.0.0-RC

Applied in r3925

Updated by Eric Davis over 1 year ago

  • Status changed from Resolved to Closed

Merged to 1.0-stable for release in 1.0.1.

Updated by Toshi MARUYAMA 12 months ago

This issue is not fixed on Windows.
I create new issue #7657.

Also available in: Atom PDF