Defect #5628

Wrong commit range in git log command

Added by Sheng Wang over 7 years ago. Updated almost 7 years ago.

Status:ClosedStart date:2010-06-01
Priority:NormalDue date:
Assignee:Jean-Baptiste Barth% 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.

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

5628_git.diff Magnifier (1.94 KB) Jean-Baptiste Barth, 2010-06-26 11:45


Related issues

Related to Redmine - 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 7 years ago

Fixed wrong commit range in git log command. #5628

History

#1 Updated by Felix Schäfer over 7 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 7 years ago

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

#3 Updated by Sheng Wang over 7 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 7 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 7 years 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.

#6 Updated by Jean-Baptiste Barth over 7 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 7 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 7 years ago

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

Also available in: Atom PDF