darcs

Issue 1172 temporary file created in silly place

Title temporary file created in silly place
Priority wishlist Status given-up
Milestone Resolved in
Superseder Nosy List darcs-devel, dmitry.kurochkin, jch, kowey, thorkilnaur, twb
Assigned To
Topics

Created on 2008-10-26.02:30:17 by twb, last changed 2017-07-30.23:40:48 by gh.

Messages
msg6461 (view) Author: twb Date: 2008-10-26.02:30:15
Darcs should probably use ${TMPDIR:-/tmp} for temporary files.  It doesn't:

$ darcs send -o /dev/null -a --dont-sign
Creating patch to "http://darcs.net/unstable"...
Waiting for Emacs...
darcs: //dev/null-0: takeFile //dev/null-0 in /home/twb/VCS/darcs-doc.~1~: openFd: permission denied (Permission denied)
msg6468 (view) Author: jch Date: 2008-10-26.09:00:50
> Darcs should probably use ${TMPDIR:-/tmp} for temporary files.  It doesn't:

No, it shouldn't.  Darcs will sometimes rename a temporary file over a real
file, for that to work efficiently the temp file needs to be in the same
directory as the file it's going to be removed over.

                                        Juliusz
msg6469 (view) Author: twb Date: 2008-10-26.09:15:52
On Sun, Oct 26, 2008 at 09:00:53AM -0000, Juliusz Chroboczek wrote:
>> Darcs should probably use ${TMPDIR:-/tmp} for temporary files.
>
> No, it shouldn't.  Darcs will sometimes rename a temporary file over
> a real file, for that to work efficiently the temp file needs to be
> in the same directory as the file it's going to be removed over.

I'd rather it worked inefficiently than not at all.  I believe the
transcript demonstrates that the "efficient" method at least needs to
be taught about edge cases, because its assumptions are not always
valid.
msg6557 (view) Author: droundy Date: 2008-11-02.23:53:15
In this case, the assumption darcs makes is that it has the right to create its
output file.  I think this is a reasonable assumption.

David
msg6562 (view) Author: twb Date: 2008-11-03.00:49:53
On Sun, Nov 02, 2008 at 11:53:17PM -0000, David Roundy wrote:
>> $ darcs send -o /dev/null -a --dont-sign
>> Creating patch to "http://darcs.net/unstable"...
>> Waiting for Emacs...
>> darcs: //dev/null-0: takeFile //dev/null-0 in /home/twb/VCS/darcs-doc.~1~: openFd: permission denied (Permission denied)
>
> In this case, the assumption darcs makes is that it has the right to
> create its output file.  I think this is a reasonable assumption.

Rather, it's making the assumption that it has the right to create
ANOTHER file in the same directory as the output file.  This is not
the case for /dev/.
msg8430 (view) Author: kowey Date: 2009-08-23.19:46:06
It could be nice to fix this trying first to create it in the same place as the
real file and backing off if we can't.  I don't know if this will be difficult
to do or not though.  Have a look at Darcs.Lock
msg8447 (view) Author: twb Date: 2009-08-24.02:06:52
On Sun, Aug 23, 2009 at 07:46:08PM +0000, Eric Kow wrote:
> It could be nice to fix this trying first to create it in the same
> place as the real file and backing off if we can't.  I don't know if
> this will be difficult to do or not though.  Have a look at
> Darcs.Lock

While the implementor is at it, I'd also like

    darcs24735-new_87c87c6d663850ba77e6e5e50b716c8e
    darcs-temp-mail-0.~1~
    darcs-record-0.~1~

to end up in either ${TMPDIR:-/tmp} or (if you're concerned about
"performance") in _darcs/.  Currently they're in my working directory,
the top of the working tree, and I periodically have to go through and
delete them.
msg9552 (view) Author: twb Date: 2009-12-07.10:16:26
I noticed just now that git creates its equivalent of darcs-record-N within .git.
This is analogous to my suggestion of putting temp files in _darcs/.
History
Date User Action Args
2008-10-26 02:30:17twbcreate
2008-10-26 09:00:53jchsetstatus: unread -> unknown
nosy: + darcs-devel, jch
messages: + msg6468
2008-10-26 09:15:54twbsetnosy: jch, kowey, darcs-devel, dagit, simon, twb, thorkilnaur, dmitry.kurochkin
messages: + msg6469
2008-11-02 23:53:17droundysetpriority: wishlist
nosy: + droundy
messages: + msg6557
2008-11-03 00:49:55twbsetnosy: droundy, jch, kowey, darcs-devel, dagit, simon, twb, thorkilnaur, dmitry.kurochkin
messages: + msg6562
2009-08-06 18:01:41adminsetnosy: + markstos, jast, Serware, zooko, mornfall, tommy, beschmi, - droundy, jch, twb
2009-08-06 21:13:44adminsetnosy: - beschmi
2009-08-10 21:50:15adminsetnosy: + twb, jch, - tommy, markstos, zooko, jast, Serware, mornfall
2009-08-10 23:49:24adminsetnosy: - dagit
2009-08-23 19:46:08koweysetstatus: unknown -> needs-implementation
nosy: jch, kowey, darcs-devel, simon, twb, thorkilnaur, dmitry.kurochkin
messages: + msg8430
2009-08-24 02:06:55twbsetnosy: jch, kowey, darcs-devel, simon, twb, thorkilnaur, dmitry.kurochkin
messages: + msg8447
2009-08-25 17:32:33adminsetnosy: - simon
2009-08-27 10:36:37koweysetnosy: jch, kowey, darcs-devel, twb, thorkilnaur, dmitry.kurochkin
2009-08-27 14:31:34adminsetnosy: jch, kowey, darcs-devel, twb, thorkilnaur, dmitry.kurochkin
2009-12-07 10:16:39twbsetmessages: + msg9552
2017-07-30 23:40:48ghsetstatus: needs-implementation -> given-up