msysgit / git

msysGit-based Git for Windows 1.x is now superseded by Git for Windows 2.x
http://github.com/git-for-windows/git
Other
1.01k stars 317 forks source link

`git add -p .` stack overflow in perl.exe #299

Closed hitsthings closed 9 years ago

hitsthings commented 9 years ago

Similar to #182 (which I get with git add -p webapp). If I git add -p webapp/default/src/main/resources/stash-plugin.xml it works though.

C:\Code\stash>git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   webapp/default/src/main/resources/stash-plugin.xml
        modified:   webapp/default/src/main/resources/stash-plugins/keyboard-shortcuts.xml
        modified:   webapp/default/src/main/webapp/static/feature/file-content/diff-line-info.js
        modified:   webapp/default/src/main/webapp/static/feature/file-content/diff-view/diff-view.js
        modified:   webapp/default/src/main/webapp/static/feature/file-content/source-view/source-view.js
        modified:   webapp/default/src/main/webapp/static/feature/file-content/stash-codemirror/search.js
        modified:   webapp/default/src/main/webapp/static/feature/file-content/stash-codemirror/stash-codemirror.js
        modified:   webapp/default/src/main/webapp/static/feature/file-content/text-view/text-view-api.js
        modified:   webapp/default/src/main/webapp/static/feature/file-content/text-view/text-view.js

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        func-test/browser/src/test/java/it/com/atlassian/stash/TextViewScrollingTest.java
        func-test/common/src/main/java/com/atlassian/stash/test/FileSizeRepoRule.java
        perl.exe.stackdump
        webapp/default/src/main/webapp/static/util/activity-tracker.js

no changes added to commit (use "git add" and/or "git commit -a")

C:\Code\stash>git --version
git version 1.9.5.msysgit.0

C:\Code\stash>git add -p .
      0 [main] perl.exe" 1988 open_stackdumpfile: Dumping stack trace to perl.exe.stackdump
      0 [main] perl.exe" 6644 open_stackdumpfile: Dumping stack trace to perl.exe.stackdump
No changes.

C:\Code\stash>cat perl.exe.stackdump
MSYS-1.0.12 Build:2012-07-05 14:56
Exception: STATUS_STACK_OVERFLOW at eip=68098A37
eax=000571C0 ebx=0A7DD928 ecx=00092014 edx=002521C0 esi=0A6FD698 edi=00000000
ebp=0028E12C esp=0028E00C program=C:\Program Files (x86)\Git\bin\perl.exe
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame     Function  Args
0028E12C  68098A37  (0028F09C, 0A7DD928, 680A6C14, 680A6C14)
0028F3EC  68058F34  (00000000, 0028F4CC, 0A5C9008, 0A0103E8)
0028F42C  68059D3A  (00000000, 00000003, 0028F4CC, 0A5C9008)
0028F45C  680104E5  (0028F4CC, 0A5C9008, 0A0103E8, 68087475)
0028F48C  68010562  (0028F4CC, 0A5C9008, 0028F8CC, 6808458F)
0028F8CC  6808459C  (0A0E7CB8, 0A5C9008, 0028F90C, 6805C7B8)
0028F91C  6788BEEA  (00000000, 0A24D810, 0A25474C, 00000006)
0028F98C  67841025  (0028FA04, 00001BCF, 0A24D814, 678441A8)
0028FB0C  6788A235  (0A1AB21C, 0A18DA70, 00000002, 00000000)
0028FB7C  6787C3BB  (00000000, 00000005, 0028FB9C, 677F3D2F)
0028FB8C  6784DD34  (0A012768, 00000000, 0028FCCC, 677F3A6E)
0028FB9C  677F3D2F  (00000001, 00000000, 0028FCB4, 00001000)
0028FCCC  677F3A6E  (0A012798, 00000001, 0028FCFC, 004010C3)
0028FCFC  00401123  (00000005, 0A012768, 0A0103E8, 00000000)
0028FEE8  68004B08  (00000000, 00000000, 0028FF28, 00401EF0)
0028FF08  68004C5F  (00401068, 00401000, 00000000, D5B33730)
End of stack trace (more stack frames may be present)
C:\Code\stash>
dscho commented 9 years ago

This is probably caused by a very long command line. As it happens, I took a contributed patch, cleaned it up and opened a new Pull Request: https://github.com/git-for-windows/git/pull/305

@hitsthings please feel free to test whether this Pull Request fixes your issues. I am moving the discussion there in any case.

hitsthings commented 9 years ago

I'll have to take your word on what constitutes a large command line or large number of files. It sounds plausible.

The output I shared above shows what files were changed at the time I ran the command - 12 files including untracked.

Thanks for contributing!