Re: StGIT cannot import properly from stdin
From: Catalin Marinas <hidden>
Date: 2016-06-15 22:42:07
Pierre Ossman [off-list ref] wrote:
quoted
It works for me with the latest snapshot. What might happen in your case is a missing "---" line after the patch description. The import command reads the sys.stdin file descriptor until the first "---" line. After that, the git.apply() function will read the rest of the lines and pass them to git-apply. You can put some prints in the git.apply() function to check where it starts reading from.Hmm... it seems you're kind of right. It doesn't need the patch twice. But it needs EOF more than once. The for-loop in __parse_patch() doesn't start until the EOF is recieved. And the second for-loop in _input() requires a new EOF.
The line below in __parse_patch() ensures that the 'for' loop does not
consume all the input lines:
if re.match('---\s*$', line) or re.match('diff -', line):
break
Unfortunately, if the '---' line is missing, it consumes all the input
lines. Is this the case with your patch?
If you would cache the input to a file (or memory) you would remove both of these problems.
True, but it requires more work than simply writing the patch to a file and reading it twice. -- Catalin