On 11.06.2009 11:01, Adrian Buehlmann wrote: > On 11.06.2009 08:47, Simon Heimberg wrote: >> Am Mittwoch, den 10.06.2009, 21:54 +0200 schrieb Adrian Buehlmann: >>> On 10.06.2009 21:38, Adrian Buehlmann wrote: >>>> What I got was this nice little traceback here: >>> I forgot to mention that I get *no* traceback without Simon's patch. >> I confirm your test results. I agree that a possibly wrong display is >> better than a traceback. > > I just tried using CreateFile [1] of windows API instead of fopen > > I've pushed my opentest hack to bitbucket: > http://bitbucket.org/abuehl/opentest/src/64cc3eafedbe/opentest.cpp > http://bitbucket.org/abuehl/opentest/changeset/64cc3eafedbe/ > > If I specify FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE > for dwShareMode of CreateFile, I can do hgtk thgstatus with your patch > applied while the file is held open by CreateFile. > > The temporary file of the atomictemp is then kept as long as > the reading process holds the file handle open (or the process > dies) and then the temporary file is deleted. > > It could be that this is the way to go anyway, as I fear we have this > problem anyway too with reading ".hg/dirstate" and there we can't control > the writing side as this is done by Mercurial.
Yes, we definitely have this problem: http://bitbucket.org/mirror/mercurial-crew/src/c5f36402daad/mercurial/dirstate.py#cl-371 dirstate.write uses atomictemp+rename as well. CuteHg project has the same problem: http://bitbucket.org/bfrog/cutehg-crew/src/cbd421e34fd9/win32/shellext/dirstate.c > I will look into changing the shellext to use CreateFile instead of > fopen. First for the dirstate reader. > > A bit annoying is, we then have to do the file reading using > ReadFile of winAPI ourselves (I can't use the C runtime FILE stuff > or the std C++ lib together with CreateFile) > > [1] http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Tortoisehg-develop mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop
