Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
Reprensents a git reference.
Synopsis
- newtype Ref = Ref (ManagedPtr Ref)
- class (GObject o, IsDescendantOf Ref o) => IsRef o
- toRef :: (MonadIO m, IsRef o) => o -> m Ref
- noRef :: Maybe Ref
- refDelete :: (HasCallStack, MonadIO m, IsRef a) => a -> m ()
- refDeleteLog :: (HasCallStack, MonadIO m, IsRef a) => a -> m ()
- refGetLog :: (HasCallStack, MonadIO m, IsRef a) => a -> m (Maybe Reflog)
- refGetName :: (HasCallStack, MonadIO m, IsRef a) => a -> m (Maybe Text)
- refGetOwner :: (HasCallStack, MonadIO m, IsRef a) => a -> m (Maybe Repository)
- refGetReferenceType :: (HasCallStack, MonadIO m, IsRef a) => a -> m RefType
- refGetShorthand :: (HasCallStack, MonadIO m, IsRef a) => a -> m (Maybe Text)
- refGetSymbolicTarget :: (HasCallStack, MonadIO m, IsRef a) => a -> m (Maybe Text)
- refGetTarget :: (HasCallStack, MonadIO m, IsRef a) => a -> m (Maybe OId)
- refHasLog :: (HasCallStack, MonadIO m, IsRef a) => a -> m Bool
- refIsBranch :: (HasCallStack, MonadIO m, IsRef a) => a -> m Bool
- refIsNote :: (HasCallStack, MonadIO m, IsRef a) => a -> m Bool
- refIsRemote :: (HasCallStack, MonadIO m, IsRef a) => a -> m Bool
- refIsTag :: (HasCallStack, MonadIO m, IsRef a) => a -> m Bool
- refIsValidName :: (HasCallStack, MonadIO m) => Text -> m Bool
- refLookup :: (HasCallStack, MonadIO m, IsRef a) => a -> m (Maybe Object)
- refRename :: (HasCallStack, MonadIO m, IsRef a) => a -> Text -> Bool -> Text -> m (Maybe Ref)
- refResolve :: (HasCallStack, MonadIO m, IsRef a) => a -> m (Maybe Ref)
- refSetSymbolicTarget :: (HasCallStack, MonadIO m, IsRef a) => a -> Text -> Text -> m (Maybe Ref)
- refSetTarget :: (HasCallStack, MonadIO m, IsRef a) => a -> OId -> Text -> m (Maybe Ref)
- refToString :: (HasCallStack, MonadIO m, IsRef a) => a -> m (Maybe Text)
Exported types
Memory-managed wrapper type.
Ref (ManagedPtr Ref) |
Instances
Eq Ref Source # | |
IsGValue Ref Source # | Convert |
GObject Ref Source # | |
Defined in GI.Ggit.Objects.Ref gobjectType :: IO GType # | |
HasParentTypes Ref Source # | |
Defined in GI.Ggit.Objects.Ref | |
type ParentTypes Ref Source # | |
Defined in GI.Ggit.Objects.Ref |
class (GObject o, IsDescendantOf Ref o) => IsRef o Source #
Instances
(GObject o, IsDescendantOf Ref o) => IsRef o Source # | |
Defined in GI.Ggit.Objects.Ref |
Methods
Overloaded methods
delete
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m () | (Can throw |
Deletes ref
.
This method works for both direct and symbolic references.
The reference will be immediately removed on disk and from memory. The given reference pointer will no longer be valid.
deleteLog
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m () | (Can throw |
Deletes the log for ref
, on error error
is set.
getLog
Gets the Reflog
for ref
. The reflog will be created if it doesn't exist
yet.
getName
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m (Maybe Text) | Returns: the full name of a reference or |
Gets the full name of ref
.
getOwner
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m (Maybe Repository) | Returns: the repository where a reference resides or |
Gets the repository where ref
resides.
getReferenceType
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m RefType | Returns: the type of a reference. |
Gets the type of ref
. Either direct (GGIT_REF_OID
) or
symbolic (GGIT_REF_SYMBOLIC
).
getShorthand
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m (Maybe Text) | Returns: the shorthand name of a reference or |
Gets the shorthand name of ref
.
getSymbolicTarget
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m (Maybe Text) | Returns: the name if available, |
Get full name to the reference pointed to by a symbolic reference. Only available if the reference is symbolic.
getTarget
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m (Maybe OId) | Returns: a new oid if available, |
Get the OID pointed to by a direct reference. Only available if the reference is direct (i.e. an object id reference, not a symbolic one).
hasLog
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m Bool |
Get whether ref
has an existing log.
isBranch
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m Bool | Returns: |
Check whether the reference is a branch.
isNote
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m Bool |
Check whether the reference is a note.
isRemote
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m Bool | Returns: |
Check whether the reference is a remote.
isTag
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m Bool |
Check whether the reference is a tag.
isValidName
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m Bool |
Check if the given name
is a valid name for a reference. Note that name
should be the full ref name (including prefixes).
Valid toplevel names can contain only capital letters and underscores and must start and end with a letter (e.g. HEAD, ORIG_HEAD).
Valid refs/ names may contain any characters, except '~', '^', ':', '\', '?', '[', '*', ".." and "@{", because they are interpreted by revparse.
lookup
Convenient method to resolve a reference to an object.
rename
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> Text |
|
-> Bool |
|
-> Text |
|
-> m (Maybe Ref) |
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 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.
resolve
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> m (Maybe Ref) | Returns: the resolved reference to the peeled one or |
Resolves a symbolic reference.
This method iteratively peels a symbolic reference until it resolves to a direct reference to an OID.
If a direct reference is passed as an argument, that reference is returned immediately.
setSymbolicTarget
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> Text |
|
-> Text |
|
-> m (Maybe Ref) | Returns: the newly created |
Create a new reference with the same name as the given reference but a different symbolic target. The reference must be a symbolic reference, otherwise this will fail.
The new reference will be written to disk, overwriting the given reference.
The target name will be checked for validity.
See ggit_ref_create_symbolic()
for rules about valid names.
setTarget
:: (HasCallStack, MonadIO m, IsRef a) | |
=> a |
|
-> OId |
|
-> Text |
|
-> m (Maybe Ref) | Returns: the newly created |
Create a new reference with the same name as the given reference but a different OID target. The reference must be a direct reference, otherwise this will fail.
The new reference will be written to disk, overwriting the given reference.