### Class

# Foundry Vcs

#### Description [src]

    abstract class Foundry.Vcs : Foundry.Contextual
      implements Json.Serializable {
      /* No available fields */
    }

Abstract base class for plugins to implement support for a VCS.

#### Ancestors

- FoundryContextual
- GObject

#### Descendants

- FoundryGitVcs
- FoundryNoVcs

#### Implements

- JsonSerializable

#### Instance methods

###### foundry_vcs_blame

No description available.

###### foundry_vcs_describe_line_changes

No description available.

###### foundry_vcs_diff

Diffs two `FoundryVcsTree` resulting in a `FoundryVcsDiff`.

###### foundry_vcs_dup_branch_name

Gets the name of the branch such as “main”.

###### foundry_vcs_dup_id

Gets the identifier for the VCS such as “git” or “none”.

###### foundry_vcs_dup_name

Gets the name of the vcs in title format such as “Git”.

###### foundry_vcs_emit_tip_changed

Emits the “tip-changed” signal. This method is intended for use by subclasses to notify when the tip (most recent commit) has changed.

since: 1.1

###### foundry_vcs_fetch

No description available.

###### foundry_vcs_find_commit

Finds a commit by identifier.

###### foundry_vcs_find_file

No description available.

###### foundry_vcs_find_remote

No description available.

###### foundry_vcs_find_tree

Finds a `FoundryVcsTree` by tree identifier.

###### foundry_vcs_get_active

No description available.

###### foundry_vcs_get_priority

No description available.

###### foundry_vcs_is_file_ignored

No description available.

###### foundry_vcs_is_ignored

No description available.

###### foundry_vcs_list_branches

No description available.

###### foundry_vcs_list_commits_with_file

No description available.

###### foundry_vcs_list_files

List all files in the repository.

###### foundry_vcs_list_remotes

No description available.

###### foundry_vcs_list_tags

No description available.

###### foundry_vcs_load_tip

Loads the tip (most recent commit) from the repository.

since: 1.1

###### foundry_vcs_query_file_status

Queries the state of `file` in the repository.

##### Methods inherited from FoundryContextual (4)

###### foundry_contextual_acquire

This method provides a checked way to get a `context` for the contextual.

since: 1.1

###### foundry_contextual_dup_context

Gets the `FoundryContext` that `self` is a part of while safely increasing the reference count of the resulting `FoundryContext` by 1.

###### foundry_contextual_inhibit

Creates a new `FoundryInhibitor` that will keep the `FoundryContext` alive and prevent shutdown until `foundry_inhibitor_uninhibit()` is called or the `FoundryInhibitor` is finalized, whichever comes first.

###### foundry_contextual_log

No description available.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from JsonSerializable (8)

###### json_serializable_default_deserialize_property

Calls the default implementation of the `Json.SerializableIface.deserialize_property` virtual function.

###### json_serializable_default_serialize_property

Calls the default implementation of the `Json.SerializableIface.serialize_property` virtual function.

###### json_serializable_deserialize_property

Asks a `JsonSerializable` implementation to deserialize the property contained inside `property_node` and place its value into `value`.

###### json_serializable_find_property

Calls the `Json.SerializableIface.find_property` implementation on the `JsonSerializable` instance, which will return the property description for the given name.

###### json_serializable_get_property

Calls the `Json.SerializableIface.get_property` implementation on the `JsonSerializable` instance, which will get the value of the given property.

###### json_serializable_list_properties

Calls the `Json.SerializableIface.list_properties` implementation on the `JsonSerializable` instance, which will return the list of serializable properties.

###### json_serializable_serialize_property

Asks a `JsonSerializable` implementation to serialize an object property into a JSON node.

###### json_serializable_set_property

Calls the `Json.SerializableIface.set_property` implementation on the `JsonSerializable` instance, which will set the property with the given value.

#### Properties

###### Foundry.Vcs:active

No description available.

###### Foundry.Vcs:branch-name

No description available.

###### Foundry.Vcs:id

No description available.

###### Foundry.Vcs:name

No description available.

###### Foundry.Vcs:priority

No description available.

###### Foundry.Vcs:provider

No description available.

##### Properties inherited from FoundryContextual (1)

###### Foundry.Contextual:context

No description available.

#### Signals

###### Foundry.Vcs::tip-changed

No description available.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct FoundryVcsClass {
      FoundryContextualClass parent_class;
      char* (* dup_id) (
        FoundryVcs* self
      );
      char* (* dup_name) (
        FoundryVcs* self
      );
      char* (* dup_branch_name) (
        FoundryVcs* self
      );
      guint (* get_priority) (
        FoundryVcs* self
      );
      gboolean (* is_ignored) (
        FoundryVcs* self,
        const char* relative_path
      );
      gboolean (* is_file_ignored) (
        FoundryVcs* self,
        GFile* file
      );
      DexFuture* (* list_files) (
        FoundryVcs* self
      );
      DexFuture* (* find_file) (
        FoundryVcs* self,
        GFile* file
      );
      DexFuture* (* blame) (
        FoundryVcs* self,
        FoundryVcsFile* file,
        GBytes* bytes
      );
      DexFuture* (* list_branches) (
        FoundryVcs* self
      );
      DexFuture* (* list_tags) (
        FoundryVcs* self
      );
      DexFuture* (* list_remotes) (
        FoundryVcs* self
      );
      DexFuture* (* find_remote) (
        FoundryVcs* self,
        const char* name
      );
      DexFuture* (* find_commit) (
        FoundryVcs* self,
        const char* id
      );
      DexFuture* (* find_tree) (
        FoundryVcs* self,
        const char* id
      );
      DexFuture* (* fetch) (
        FoundryVcs* self,
        FoundryVcsRemote* remote,
        FoundryOperation* operation
      );
      DexFuture* (* list_commits_with_file) (
        FoundryVcs* self,
        FoundryVcsFile* file
      );
      DexFuture* (* diff) (
        FoundryVcs* self,
        FoundryVcsTree* tree_a,
        FoundryVcsTree* tree_b
      );
      DexFuture* (* describe_line_changes) (
        FoundryVcs* self,
        FoundryVcsFile* file,
        GBytes* contents
      );
      DexFuture* (* query_file_status) (
        FoundryVcs* vcs,
        GFile* file
      );
      DexFuture* (* load_tip) (
        FoundryVcs* self
      );

    }

No description available.

###### Class members

`parent_class: FoundryContextualClass`

  No description available.

`dup_id: char* (* dup_id) ( FoundryVcs* self )`

  No description available.

`dup_name: char* (* dup_name) ( FoundryVcs* self )`

  No description available.

`dup_branch_name: char* (* dup_branch_name) ( FoundryVcs* self )`

  No description available.

`get_priority: guint (* get_priority) ( FoundryVcs* self )`

  No description available.

`is_ignored: gboolean (* is_ignored) ( FoundryVcs* self, const char* relative_path )`

  No description available.

`is_file_ignored: gboolean (* is_file_ignored) ( FoundryVcs* self, GFile* file )`

  No description available.

`list_files: DexFuture* (* list_files) ( FoundryVcs* self )`

  No description available.

`find_file: DexFuture* (* find_file) ( FoundryVcs* self, GFile* file )`

  No description available.

`blame: DexFuture* (* blame) ( FoundryVcs* self, FoundryVcsFile* file, GBytes* bytes )`

  No description available.

`list_branches: DexFuture* (* list_branches) ( FoundryVcs* self )`

  No description available.

`list_tags: DexFuture* (* list_tags) ( FoundryVcs* self )`

  No description available.

`list_remotes: DexFuture* (* list_remotes) ( FoundryVcs* self )`

  No description available.

`find_remote: DexFuture* (* find_remote) ( FoundryVcs* self, const char* name )`

  No description available.

`find_commit: DexFuture* (* find_commit) ( FoundryVcs* self, const char* id )`

  No description available.

`find_tree: DexFuture* (* find_tree) ( FoundryVcs* self, const char* id )`

  No description available.

`fetch: DexFuture* (* fetch) ( FoundryVcs* self, FoundryVcsRemote* remote, FoundryOperation* operation )`

  No description available.

`list_commits_with_file: DexFuture* (* list_commits_with_file) ( FoundryVcs* self, FoundryVcsFile* file )`

  No description available.

`diff: DexFuture* (* diff) ( FoundryVcs* self, FoundryVcsTree* tree_a, FoundryVcsTree* tree_b )`

  No description available.

`describe_line_changes: DexFuture* (* describe_line_changes) ( FoundryVcs* self, FoundryVcsFile* file, GBytes* contents )`

  No description available.

`query_file_status: DexFuture* (* query_file_status) ( FoundryVcs* vcs, GFile* file )`

  No description available.

`load_tip: DexFuture* (* load_tip) ( FoundryVcs* self )`

  No description available.

#### Virtual methods

###### Foundry.VcsClass.blame

No description available.

###### Foundry.VcsClass.describe_line_changes

No description available.

###### Foundry.VcsClass.diff

Diffs two `FoundryVcsTree` resulting in a `FoundryVcsDiff`.

###### Foundry.VcsClass.dup_branch_name

Gets the name of the branch such as “main”.

###### Foundry.VcsClass.dup_id

Gets the identifier for the VCS such as “git” or “none”.

###### Foundry.VcsClass.dup_name

Gets the name of the vcs in title format such as “Git”.

###### Foundry.VcsClass.fetch

No description available.

###### Foundry.VcsClass.find_commit

Finds a commit by identifier.

###### Foundry.VcsClass.find_file

No description available.

###### Foundry.VcsClass.find_remote

No description available.

###### Foundry.VcsClass.find_tree

Finds a `FoundryVcsTree` by tree identifier.

###### Foundry.VcsClass.get_priority

No description available.

###### Foundry.VcsClass.is_file_ignored

No description available.

###### Foundry.VcsClass.is_ignored

No description available.

###### Foundry.VcsClass.list_branches

No description available.

###### Foundry.VcsClass.list_commits_with_file

No description available.

###### Foundry.VcsClass.list_files

List all files in the repository.

###### Foundry.VcsClass.list_remotes

No description available.

###### Foundry.VcsClass.list_tags

No description available.

###### Foundry.VcsClass.load_tip

Loads the tip (most recent commit) from the repository.

since: 1.1

###### Foundry.VcsClass.query_file_status

Queries the state of `file` in the repository.