GgitPatch

GgitPatch

Synopsis

                    GgitPatch;
GgitDiffDelta *     ggit_patch_get_delta                (GgitPatch *patch);
GgitDiffHunk *      ggit_patch_get_hunk                 (GgitPatch *patch,
                                                         gsize idx,
                                                         GError **error);
gboolean            ggit_patch_get_line_stats           (GgitPatch *patch,
                                                         gsize *total_context,
                                                         gsize *total_additions,
                                                         gsize *total_deletions,
                                                         GError **error);
gsize               ggit_patch_get_num_hunks            (GgitPatch *patch);
gint                ggit_patch_get_num_lines_in_hunk    (GgitPatch *patch,
                                                         gsize hunk);
GgitPatch *         ggit_patch_new_from_blobs           (GgitBlob *old_blob,
                                                         const gchar *old_as_path,
                                                         GgitBlob *new_blob,
                                                         const gchar *new_as_path,
                                                         GgitDiffOptions *diff_options,
                                                         GError **error);
GgitPatch *         ggit_patch_new_from_diff            (GgitDiff *diff,
                                                         gsize idx,
                                                         GError **error);
GgitPatch *         ggit_patch_ref                      (GgitPatch *patch);
gboolean            ggit_patch_to_stream                (GgitPatch *patch,
                                                         GOutputStream *stream,
                                                         GError **error);
gchar *             ggit_patch_to_string                (GgitPatch *patch,
                                                         GError **error);
void                ggit_patch_unref                    (GgitPatch *patch);

Object Hierarchy

  GBoxed
   +----GgitPatch

Description

Details

GgitPatch

typedef struct _GgitPatch GgitPatch;

Represents a patch object.


ggit_patch_get_delta ()

GgitDiffDelta *     ggit_patch_get_delta                (GgitPatch *patch);

Get the diff delta corresponding to the patch.

patch :

a GgitPatch.

Returns :

the GgitDiffDelta of the patch. [transfer full]

ggit_patch_get_hunk ()

GgitDiffHunk *      ggit_patch_get_hunk                 (GgitPatch *patch,
                                                         gsize idx,
                                                         GError **error);

Get the idx'th hunk in the patch.

patch :

a GgitPatch

idx :

the hunk index.

error :

a GError

Returns :

a new GgitDiffHunk or NULL on error. [transfer full]

ggit_patch_get_line_stats ()

gboolean            ggit_patch_get_line_stats           (GgitPatch *patch,
                                                         gsize *total_context,
                                                         gsize *total_additions,
                                                         gsize *total_deletions,
                                                         GError **error);

Get the line statistics of the patch.

patch :

a GgitPatch.

total_context :

return value for the number of context lines. [allow-none][out]

total_additions :

return value for the number of added lines. [allow-none][out]

total_deletions :

return value for the number of deleted lines. [allow-none][out]

error :

a GError.

Returns :

TRUE if successfull, FALSE otherwise.

ggit_patch_get_num_hunks ()

gsize               ggit_patch_get_num_hunks            (GgitPatch *patch);

Get the number of hunks in the patch.

patch :

a GgitPatch.

Returns :

the number of hunks.

ggit_patch_get_num_lines_in_hunk ()

gint                ggit_patch_get_num_lines_in_hunk    (GgitPatch *patch,
                                                         gsize hunk);

Get the number of lines in hunk.

patch :

a GgitPatch.

hunk :

the hunk index.

Returns :

the number of lines.

ggit_patch_new_from_blobs ()

GgitPatch *         ggit_patch_new_from_blobs           (GgitBlob *old_blob,
                                                         const gchar *old_as_path,
                                                         GgitBlob *new_blob,
                                                         const gchar *new_as_path,
                                                         GgitDiffOptions *diff_options,
                                                         GError **error);

Directly generate a patch from the difference between two blobs.

This is just like ggit_diff_blobs() except it generates a patch object for the difference instead of directly making callbacks. You can use the standard ggit_patch accessor functions to read the patch data, and you must call ggit_patch_unref on the patch when done.

old_blob :

a GgitBlob to diff from. [allow-none]

old_as_path :

treat old_blob as if it had this filename, or NULL,. [allow-none]

new_blob :

a GgitBlob to diff to. [allow-none]

new_as_path :

treat new_blob as if it had this filename, or NULL,. [allow-none]

diff_options :

a GgitDiffOptions, or NULL. [allow-none]

error :

a GError for error reporting, or NULL.

ggit_patch_new_from_diff ()

GgitPatch *         ggit_patch_new_from_diff            (GgitDiff *diff,
                                                         gsize idx,
                                                         GError **error);

The GgitPatch is a newly created object contains the text diffs for the delta. You have to call ggit_patch_unref() when you are done with it. You can use the patch object to loop over all the hunks and lines in the diff of the one delta.

diff :

a GgitDiff.

idx :

index into diff list.

error :

a GError for error reporting, or NULL.

Returns :

a newly created GgitPatch. [transfer full]

ggit_patch_ref ()

GgitPatch *         ggit_patch_ref                      (GgitPatch *patch);

Atomically increments the reference count of patch by one. This function is MT-safe and may be called from any thread.

patch :

a GgitPatch.

Returns :

a GgitPatch. [transfer none]

ggit_patch_to_stream ()

gboolean            ggit_patch_to_stream                (GgitPatch *patch,
                                                         GOutputStream *stream,
                                                         GError **error);

Write the contents of a patch to the provided stream.

patch :

a GgitPatch.

stream :

a GOutputStream.

error :

a GError for error reporting, or NULL.

Returns :

TRUE if the patch was written successfully, FALSE otherwise.

ggit_patch_to_string ()

gchar *             ggit_patch_to_string                (GgitPatch *patch,
                                                         GError **error);

Gets the content of a patch as a single diff text.

patch :

a GgitPatch.

error :

a GError for error reporting, or NULL.

Returns :

the content of a patch as a single diff text.

ggit_patch_unref ()

void                ggit_patch_unref                    (GgitPatch *patch);

Atomically decrements the reference count of patch by one. If the reference count drops to 0, patch is freed.

patch :

a GgitPatch.