Re: StGIT cannot import properly from stdin
- From
- Catalin Marinas <catalin.marinas@gmail.com>
- Date
- Sep 22, 2005, 12:11 UTC
- Message-ID
- <tnxhdcd2tfn.fsf@arm.com>
- In-Reply-To
- <433290A5.5070008@drzeus.cx>
Pierre Ossman <drzeus-list@drzeus.cx> wrote:
Show 11 quoted lines
>>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):
breakUnfortunately, 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