File that follows the git locking protocol for writes.
All writes to a file foo will be written into foo.lock in the same directory, and the lockfile will be renamed to overwrite the original file on close.
|Note||You must call close() or abort() on a _GitFile for the lock to be released. Typically this will happen in a finally block.|
|Method||abort||Close and discard the lockfile without overwriting the target.|
|Method||close||Close this file, saving the lockfile over the original.|
|Method||__getattr__||Proxy property calls to the underlying file.|
Close and discard the lockfile without overwriting the target.
If the file is already closed, this is a no-op.
|Raises||OSError||if the original file could not be overwritten. The lock file is still closed, so further attempts to write to the same file object will raise ValueError.|
|Note||If this method fails, it will attempt to delete the lockfile. However, it is not guaranteed to do so (e.g. if a filesystem becomes suddenly read-only), which will prevent future writes to this file until the lockfile is removed manually.|