Ggit.Ref.rename

### Method

# Ggit Refrename

#### Declaration [src]

    GgitRef*
    ggit_ref_rename (
      GgitRef* ref,
      const gchar* new_name,
      gboolean force,
      const gchar* log_message,
      GError** error
    )

#### Description [src]

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, `ref` will be deleted from disk and a new `GgitRef` 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

`new_name` | `const gchar*`
| The new name.
| The data is owned by the caller of the function.
| The value is a NUL terminated UTF-8 string.
`force` | `gboolean`
| `TRUE` to force the renaming.
`log_message` | `const gchar*`
| The one line long message to be appended to the reflog.
| The data is owned by the caller of the function.
| The value is a NUL terminated UTF-8 string.
`error` | `GError **`
| The return location for a `GError*`, or `NULL`.

#### Return value

Returns: | `GgitRef`
| A newly created `GgitRef` or `NULL`.
| The caller of the method takes ownership of the data, and is responsible for freeing it.
| The return value can be `NULL`.