rename


Description:

public Ref? rename (string new_name, bool force, string log_message) throws Error

Rename an existing reference.

This method works for both direct and symbolic references.

The new name will be checked for validity. See `ggit_ref_create_symbolic()` for rules about valid names.

If not error, this will be deleted from disk and a new Ref will be returned.

The reference will be immediately renamed in-memory and on disk.

If the `force` flag is not enabled, and there's already a reference with the given name, the renaming will fail.

IMPORTANT: The user needs to write a proper reflog entry if the reflog is enabled for the repository. We only rename the reflog if it exists.

Parameters:

this

a Ref.

new_name

the new name.

force

true to force the renaming.

log_message

The one line long message to be appended to the reflog.

Returns:

a newly created Ref or null.