diff options
author | Alan Donovan <adonovan@google.com> | 2023-01-17 11:30:48 -0500 |
---|---|---|
committer | Alan Donovan <adonovan@google.com> | 2023-01-17 18:12:07 +0000 |
commit | c0799f7015e6cae37c21294bb94f56050fda5f4e (patch) | |
tree | 90ac08853d06a19c235e2adcfa1d65aeefc17f2b | |
parent | d74c31f0ba8b7940350f93df044a5cb7002e02d0 (diff) | |
download | go-git-c0799f7015e6cae37c21294bb94f56050fda5f4e.tar.gz |
os: document that Rename is not atomic on non-Unix platforms
Windows provides no reliable way to rename files atomically.
The Plan 9 implementation of os.Rename performs a deletion
if the target exists.
Change-Id: Ife5f9c97b21f48c11e300cd76d8c7f715db09fd4
Reviewed-on: https://go-review.googlesource.com/c/go/+/462395
Auto-Submit: Alan Donovan <adonovan@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Alan Donovan <adonovan@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
-rw-r--r-- | src/os/file.go | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/os/file.go b/src/os/file.go index 6781b54da0..3d71ac068e 100644 --- a/src/os/file.go +++ b/src/os/file.go @@ -338,6 +338,7 @@ var lstat = Lstat // Rename renames (moves) oldpath to newpath. // If newpath already exists and is not a directory, Rename replaces it. // OS-specific restrictions may apply when oldpath and newpath are in different directories. +// Even within the same directory, on non-Unix platforms Rename is not an atomic operation. // If there is an error, it will be of type *LinkError. func Rename(oldpath, newpath string) error { return rename(oldpath, newpath) |