From: Catalin Marinas Date: Thu, 22 Sep 2005 14:34:45 GMT Subject: Re: StGIT cannot import properly from stdin Message-ID: In-Reply-To: <4332BA3E.2080607@drzeus.cx> Pierre Ossman wrote: >>Unfortunately, if the '---' line is missing, it consumes all the input >>lines. Is this the case with your patch? > > Nope. It consumes the correct ammount of lines. The problem is that I > have to give it a kick (^D) to start things twice. The first for > __parse_patch() and the second for _input(). I put some debug-prints in > there and the for-loops will not start executing on the first complete > line, only EOF. I tried it with reading from the terminal directly and you are right. Using 'stg import -n patch < patch-file' is fine since the stdin is not re-opened and the _input() loop starts automatically. 'cat | stg import -n patch' also works fine since cat exits when stdin receives EOF. It looks like a problem with Python since it re-opens sys.stdin once it receives EOF. >>>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. > > If it supports everything when given a filename then shouldn't adding a > preprocessing step to dump stdin to disk give the same code path? I was referring to the 'cache the input to memory' variant, which is a bit more complicated. Caching to a file is simple but do you need to read patches from the terminal directly? -- Catalin