# eric6.Plugins.VcsPlugins.vcsGit.git

Module implementing the version control systems interface to Git.

### Global Attributes

None

### Classes

Git | Class implementing the version control systems interface to Git.

### Functions

None

## Git

Class implementing the version control systems interface to Git.

### Signals

committed()
  emitted after the commit action has completed

### Derived from

VersionControl

### Class Attributes

IgnoreFileName

### Class Methods

None

### Methods

Git | Constructor
__gitGetFileForRevision | Private method to get a file for a specific revision from the repository.
__gitGetStashesList | Private method to get a list of stash names.
__gitSubmodulesList | Private method to get the data of defined submodules.
__selectSubmodulePath | Private method to select a submodule path.
__selectSubmodulePaths | Private method to select a list of submodule paths.
__vcsCommit_Step2 | Private slot performing the second step of the commit action.
_createStatusMonitorThread | Protected method to create an instance of the VCS status monitor thread.
clearStatusCache | Public method to clear the status cache.
getPlugin | Public method to get a reference to the plugin object.
gitAddRemote | Public method to add a remote repository.
gitApply | Public method to apply a patch stored in a given file.
gitApplyCheckPatches | Public method to apply a list of patch files or check, if they would apply cleanly.
gitBisect | Public method to perform bisect commands.
gitBisectCreateReplayFile | Public method used to create a bisect replay file for the project.
gitBisectEditReplayFile | Public method used to edit a bisect replay file.
gitBisectLogBrowser | Public method used to browse the bisect log of the project.
gitBisectReplay | Public method to replay a bisect session.
gitBlame | Public method to show the output of the git blame command.
gitBranch | Public method used to create, delete or move a branch in the Git repository.
gitBundle | Public method to create a bundle file.
gitBundleFetch | Public method to fetch a head of a bundle file into the local repository.
gitBundleListHeads | Public method to list the heads contained in a bundle file.
gitBundlePull | Public method to pull a head of a bundle file into the local repository and working area.
gitCancelMerge | Public method to cancel an uncommitted or failed merge.
gitChangeRemoteCredentials | Public method to change the user credentials of a remote repository.
gitChangeRemoteUrl | Public method to change the URL of a remote repository.
gitCherryPick | Public method to cherry pick commits and apply them to the current branch.
gitCherryPickAbort | Public method to cancel the last copying session and return to the previous state.
gitCherryPickContinue | Public method to continue the last copying session after conflicts were resolved.
gitCherryPickQuit | Public method to quit the current copying operation.
gitCommitMerge | Public method to commit a failed merge.
gitCopy | Public method used to copy a file/directory.
gitCreateArchive | Public method to show some statistics of the local repository.
gitCreateIgnoreFile | Public method to create the ignore file.
gitDeleteRemoteBranch | Public method to delete a branch from a remote repository.
gitDescribe | Public method to find the most recent tag reachable from each commit.
gitEditConfig | Public method used to edit the repository configuration file.
gitEditUserConfig | Public method used to edit the user configuration file.
gitExtendedDiff | Public method used to view the difference of a file/directory to the Git repository.
gitFetch | Public method to fetch changes from a remote repository.
gitGetArchiveFormats | Public method to get a list of supported archive formats.
gitGetBranchesList | Public method to get the list of branches.
gitGetBundleHeads | Public method to get a list of heads contained in a bundle file.
gitGetCurrentBranch | Public method used to show the current branch of the working directory.
gitGetRemoteBranchesList | Public method to get the list of a remote repository branches.
gitGetRemoteUrl | Public method to get the URL of a remote repository.
gitGetRemoteUrlsList | Public method to get the list of remote repos and their URLs.
gitGetRemotesList | Public method to get the list of remote repos.
gitGetTagsList | Public method to get the list of tags.
gitHouseKeeping | Public method to cleanup and optimize the local repository.
gitListTagBranch | Public method used to list the available tags or branches.
gitNormalizeURL | Public method to normalize a url for Git.
gitPruneRemote | Public method to prune stale remote-tracking branches.
gitPull | Public method used to pull changes from a remote Git repository.
gitPush | Public method used to push changes to a remote Git repository.
gitReflogBrowser | Public method used to browse the reflog of the project.
gitRemoveRemote | Public method to remove a remote repository.
gitRenameRemote | Public method to rename a remote repository.
gitRevert | Public method used to revert changes made to a file/directory.
gitSbsDiff | Public method used to view the difference of a file to the Git repository side-by-side.
gitShortlog | Public method to show a short log suitable for inclusion in release announcements.
gitShowBranch | Public method used to show the current branch of the working directory.
gitShowConfig | Public method to show the combined configuration.
gitShowPatchesStatistics | Public method to show statistics for a set of patch files.
gitShowRemote | Public method to show information about a remote repository.
gitShowRemotes | Public method to show available remote repositories.
gitStashApply | Public method to apply a stash but keep it.
gitStashBranch | Public method to create a branch from a stash.
gitStashBrowser | Public method used to browse the stashed changes.
gitStashClear | Public method to delete all stashes.
gitStashDrop | Public method to delete a stash.
gitStashPop | Public method to apply a stash and delete it.
gitStashSave | Public method to save the current changes to a new stash.
gitStashShowPatch | Public method to show the contents of a stash.
gitStatistics | Public method to show some statistics of the local repository.
gitSubmoduleAdd | Public method to add a submodule to the project.
gitSubmoduleDeinit | Public method to unregister submodules.
gitSubmoduleInit | Public method to initialize one or all submodules.
gitSubmoduleList | Public method to show a list of all submodules of the project.
gitSubmoduleStatus | Public method to show the status of the submodules.
gitSubmoduleSummary | Public method to show the status of the submodules.
gitSubmoduleSync | Public method to synchronize submodules.
gitSubmoduleUpdate | Public method to update submodules.
gitSubmoduleUpdateWithOptions | Public method to update submodules offering a dialog to select the update options.
gitUnstage | Public method used to unstage a file/directory.
gitVerify | Public method to verify the connectivity and validity of objects of the database.
gitVerifyBundle | Public method to verify a bundle file.
initCommand | Public method to initialize a command arguments list.
vcsAdd | Public method used to add a file/directory to the Git repository.
vcsAddBinary | Public method used to add a file/directory in binary mode to the Git repository.
vcsAddTree | Public method to add a directory tree rooted at path to the Git repository.
vcsAllRegisteredStates | Public method used to get the registered states of a number of files in the vcs.
vcsCheckout | Public method used to check the project out of a Git repository (clone).
vcsCleanup | Public method used to cleanup the working directory.
vcsCommandLine | Public method used to execute arbitrary Git commands.
vcsCommit | Public method used to make the change of a file/directory permanent in the Git repository.
vcsConvertProject | Public method to convert an uncontrolled project to a version controlled project.
vcsDiff | Public method used to view the difference of a file/directory to the Git repository.
vcsExists | Public method used to test for the presence of the git executable.
vcsExport | Public method used to export a directory from the Git repository.
vcsGetProjectBrowserHelper | Public method to instantiate a helper object for the different project browsers.
vcsGetProjectHelper | Public method to instantiate a helper object for the project.
vcsImport | Public method used to import the project into the Git repository.
vcsInit | Public method used to initialize the Git repository.
vcsInitConfig | Public method to initialize the VCS configuration.
vcsLogBrowser | Public method used to browse the log of a file/directory from the Git repository.
vcsMerge | Public method used to merge a URL/revision into the local project.
vcsMove | Public method used to move a file/directory.
vcsName | Public method returning the name of the vcs.
vcsNewProjectOptionsDialog | Public method to get a dialog to enter repository info for getting a new project.
vcsOptionsDialog | Public method to get a dialog to enter repository info.
vcsRegisteredState | Public method used to get the registered state of a file in the vcs.
vcsRemove | Public method used to remove a file/directory from the Git repository.
vcsRepositoryInfos | Public method to retrieve information about the repository.
vcsShutdown | Public method used to shutdown the Git interface.
vcsStatus | Public method used to view the status of files/directories in the Git repository.
vcsSupportCommandOptions | Public method to signal the support of user settable command options.
vcsSwitch | Public method used to switch a working directory to a different revision.
vcsTag | Public method used to set/remove a tag in the Git repository.
vcsUpdate | Public method used to update a file/directory with the Git repository.

### Static Methods

None

#### Git (Constructor)

Git(plugin, parent=None, name=None)

Constructor

plugin
  reference to the plugin object
parent
  parent widget (QWidget)
name
  name of this object (string)

#### Git.__gitGetFileForRevision

__gitGetFileForRevision(name, rev="")

Private method to get a file for a specific revision from the repository.

name
  file name to get from the repository (string)
rev=
  revision to retrieve (string)

Returns:
  contents of the file (string) and an error message (string)

#### Git.__gitGetStashesList

__gitGetStashesList(projectDir)

Private method to get a list of stash names.

projectDir
  name of the project directory (string)

Returns:
  list of available stashes (list of string)

#### Git.__gitSubmodulesList

__gitSubmodulesList(repodir)

Private method to get the data of defined submodules.

repodir (str)
  name of the directory containing the repo subdirectory

Returns:
  list of dictionaries with submodule name, path, URL and branch

Return Type:
  list of dict

#### Git.__selectSubmodulePath

__selectSubmodulePath(repodir)

Private method to select a submodule path.

repodir (str)
  name of the directory containing the repo subdirectory

Returns:
  tuple of selected submodule path and flag indicating a cancellation

Return Type:
  tuple of (str, bool)

#### Git.__selectSubmodulePaths

__selectSubmodulePaths(repodir)

Private method to select a list of submodule paths.

repodir (str)
  name of the directory containing the repo subdirectory

Returns:
  tuple of selected submodule paths and flag indicating a cancellation

Return Type:
  tuple of (list of str, bool)

#### Git.__vcsCommit_Step2

__vcsCommit_Step2()

Private slot performing the second step of the commit action.

#### Git._createStatusMonitorThread

_createStatusMonitorThread(interval, project)

Protected method to create an instance of the VCS status monitor thread.

interval
  check interval for the monitor thread in seconds (integer)
project
  reference to the project object (Project)

Returns:
  reference to the monitor thread (QThread)

#### Git.clearStatusCache

clearStatusCache()

Public method to clear the status cache.

#### Git.getPlugin

getPlugin()

Public method to get a reference to the plugin object.

Returns:
  reference to the plugin object (VcsGitPlugin)

#### Git.gitAddRemote

gitAddRemote(projectDir)

Public method to add a remote repository.

projectDir
  name of the project directory (string)

#### Git.gitApply

gitApply(repodir, patchFile, cached=False, reverse=False, noDialog=False)

Public method to apply a patch stored in a given file.

repodir
  directory name of the repository (string)
patchFile
  name of the patch file (string)
cached
  flag indicating to apply the patch to the staging area (boolean)
reverse
  flag indicating to apply the patch in reverse (boolean)
noDialog
  flag indicating quiet operations (boolean)

#### Git.gitApplyCheckPatches

gitApplyCheckPatches(projectDir, check=False)

Public method to apply a list of patch files or check, if they would apply cleanly.

projectDir
  directory name of the project (string)
check
  flag indicating to perform a check operation (boolean)

#### Git.gitBisect

gitBisect(projectDir, subcommand)

Public method to perform bisect commands.

projectDir
  name of the project directory (string)
subcommand
  name of the subcommand (string, one of 'start', 'start_extended', 'good', 'bad', 'skip' or 'reset')

Returns:
  flag indicating, that the update contained an add or delete (boolean)

Raises ValueError:
  raised to indicate an invalid bisect subcommand

#### Git.gitBisectCreateReplayFile

gitBisectCreateReplayFile(projectDir)

Public method used to create a bisect replay file for the project.

projectDir
  name of the project directory (string)

#### Git.gitBisectEditReplayFile

gitBisectEditReplayFile(projectDir)

Public method used to edit a bisect replay file.

projectDir
  name of the project directory (string)

#### Git.gitBisectLogBrowser

gitBisectLogBrowser(projectDir)

Public method used to browse the bisect log of the project.

projectDir
  name of the project directory (string)

#### Git.gitBisectReplay

gitBisectReplay(projectDir)

Public method to replay a bisect session.

projectDir
  name of the project directory (string)

Returns:
  flag indicating, that the update contained an add or delete (boolean)

#### Git.gitBlame

gitBlame(name)

Public method to show the output of the git blame command.

name
  file name to show the annotations for (string)

#### Git.gitBranch

gitBranch(name, revision=None, branchName=None, branchOp=None)

Public method used to create, delete or move a branch in the Git repository.

name
  file/directory name to be branched (string)
revision
  revision to set tag for (string)
branchName
  name of the branch (string)
branchOp
  desired branch operation (integer)

Returns:
  flag indicating a performed branch action (boolean) and a flag indicating, that the branch operation contained an add or delete (boolean)

#### Git.gitBundle

gitBundle(projectDir)

Public method to create a bundle file.

projectDir
  name of the project directory (string)

#### Git.gitBundleFetch

gitBundleFetch(projectDir)

Public method to fetch a head of a bundle file into the local repository.

projectDir
  name of the project directory (string)

#### Git.gitBundleListHeads

gitBundleListHeads(projectDir)

Public method to list the heads contained in a bundle file.

projectDir
  name of the project directory (string)

#### Git.gitBundlePull

gitBundlePull(projectDir)

Public method to pull a head of a bundle file into the local repository and working area.

projectDir
  name of the project directory (string)

Returns:
  flag indicating, that the update contained an add or delete (boolean)

#### Git.gitCancelMerge

gitCancelMerge(name)

Public method to cancel an uncommitted or failed merge.

name
  file/directory name (string)

Returns:
  flag indicating, that the cancellation contained an add or delete (boolean)

#### Git.gitChangeRemoteCredentials

gitChangeRemoteCredentials(projectDir, remoteName, remoteUrl="")

Public method to change the user credentials of a remote repository.

projectDir (str)
  name of the project directory
remoteName (str)
  name of the remote repository
remoteUrl (str)
  URL of the remote repository

#### Git.gitChangeRemoteUrl

gitChangeRemoteUrl(projectDir, remoteName, remoteUrl="")

Public method to change the URL of a remote repository.

projectDir (str)
  name of the project directory
remoteName (str)
  name of the remote repository
remoteUrl (str)
  URL of the remote repository

#### Git.gitCherryPick

gitCherryPick(projectDir, commits=None)

Public method to cherry pick commits and apply them to the current branch.

projectDir
  name of the project directory (string)
commits
  list of commits to be applied (list of strings)

Returns:
  flag indicating that the project should be reread (boolean)

#### Git.gitCherryPickAbort

gitCherryPickAbort(projectDir)

Public method to cancel the last copying session and return to the previous state.

projectDir
  name of the project directory (string)

Returns:
  flag indicating that the project should be reread (boolean)

#### Git.gitCherryPickContinue

gitCherryPickContinue(projectDir)

Public method to continue the last copying session after conflicts were resolved.

projectDir
  name of the project directory (string)

Returns:
  flag indicating that the project should be reread (boolean)

#### Git.gitCherryPickQuit

gitCherryPickQuit(projectDir)

Public method to quit the current copying operation.

projectDir
  name of the project directory (string)

Returns:
  flag indicating that the project should be reread (boolean)

#### Git.gitCommitMerge

gitCommitMerge(name)

Public method to commit a failed merge.

name
  file/directory name (string)

#### Git.gitCopy

gitCopy(name, project)

Public method used to copy a file/directory.

name
  file/directory name to be copied (string)
project
  reference to the project object

Returns:
  flag indicating successful operation (boolean)

#### Git.gitCreateArchive

gitCreateArchive(projectDir)

Public method to show some statistics of the local repository.

projectDir
  name of the project directory (string)

#### Git.gitCreateIgnoreFile

gitCreateIgnoreFile(name, autoAdd=False)

Public method to create the ignore file.

name
  directory name to create the ignore file in (string)
autoAdd
  flag indicating to add it automatically (boolean)

Returns:
  flag indicating success

#### Git.gitDeleteRemoteBranch

gitDeleteRemoteBranch(name)

Public method to delete a branch from a remote repository.

name
  file/directory name (string)

#### Git.gitDescribe

gitDescribe(projectDir, commits)

Public method to find the most recent tag reachable from each commit.

projectDir
  name of the project directory (string)
commits
  list of commits to start the search from (list of strings)

#### Git.gitEditConfig

gitEditConfig(projectDir)

Public method used to edit the repository configuration file.

projectDir
  name of the project directory (string)

#### Git.gitEditUserConfig

gitEditUserConfig()

Public method used to edit the user configuration file.

#### Git.gitExtendedDiff

gitExtendedDiff(name)

Public method used to view the difference of a file/directory to the Git repository.

If name is a directory and is the project directory, all project files are saved first. If name is a file (or list of files), which is/are being edited and has unsaved modification, they can be saved or the operation may be aborted.

This method gives the chance to enter the revisions to be compared.

name
  file/directory name to be diffed (string)

#### Git.gitFetch

gitFetch(name)

Public method to fetch changes from a remote repository.

name
  directory name (string)

#### Git.gitGetArchiveFormats

gitGetArchiveFormats(repodir)

Public method to get a list of supported archive formats.

repodir
  directory name of the repository (string)

Returns:
  list of supported archive formats (list of strings)

#### Git.gitGetBranchesList

gitGetBranchesList(repodir, withMaster=False, allBranches=False, remotes=False)

Public method to get the list of branches.

repodir
  directory name of the repository (string)
withMaster
  flag indicating to get 'master' as well (boolean)
allBranches
  flag indicating to return all branches (boolean)
remotes
  flag indicating to return remote branches only (boolean)

Returns:
  list of branches (list of string)

#### Git.gitGetBundleHeads

gitGetBundleHeads(repodir, bundleFile)

Public method to get a list of heads contained in a bundle file.

repodir
  directory name of the repository (string)
bundleFile
  file name of a git bundle file (string)

Returns:
  list of heads (list of strings)

#### Git.gitGetCurrentBranch

gitGetCurrentBranch(repodir)

Public method used to show the current branch of the working directory.

repodir
  directory name of the repository (string)

Returns:
  name of the current branch (string)

#### Git.gitGetRemoteBranchesList

gitGetRemoteBranchesList(repodir, remote)

Public method to get the list of a remote repository branches.

repodir
  directory name of the repository (string)
remote
  remote repository name (string)

Returns:
  list of remote repository branches (list of string)

#### Git.gitGetRemoteUrl

gitGetRemoteUrl(repodir, remoteName)

Public method to get the URL of a remote repository.

repodir (str)
  directory name of the repository
remoteName (str)
  name of the remote repository

Returns:
  URL of the remote repository

Return Type:
  str

#### Git.gitGetRemoteUrlsList

gitGetRemoteUrlsList(repodir, forFetch=True)

Public method to get the list of remote repos and their URLs.

repodir
  directory name of the repository (string)
forFetch
  flag indicating to get Fetch info (string)

Returns:
  list of tuples of remote repo name and repo URL (list of tuple of two strings)

#### Git.gitGetRemotesList

gitGetRemotesList(repodir)

Public method to get the list of remote repos.

repodir
  directory name of the repository (string)

Returns:
  list of remote repos (list of string)

#### Git.gitGetTagsList

gitGetTagsList(repodir, withType=False)

Public method to get the list of tags.

repodir
  directory name of the repository (string)
withType
  flag indicating to get the tag type as well (boolean)

Returns:
  list of tags (list of string) or list of tuples of tag name and flag indicating a local tag (list of tuple of string and boolean), if withType is True

#### Git.gitHouseKeeping

gitHouseKeeping(projectDir)

Public method to cleanup and optimize the local repository.

projectDir
  name of the project directory (string)

#### Git.gitListTagBranch

gitListTagBranch(path, tags=True, listAll=True, merged=True)

Public method used to list the available tags or branches.

path
  directory name of the project (string)
tags
  flag indicating listing of branches or tags (False = branches, True = tags)
listAll
  flag indicating to show all tags or branches (boolean)
merged
  flag indicating to show only merged or non-merged branches (boolean)

#### Git.gitNormalizeURL

gitNormalizeURL(url)

Public method to normalize a url for Git.

url
  url string (string)

Returns:
  properly normalized url for git (string)

#### Git.gitPruneRemote

gitPruneRemote(projectDir, remoteName)

Public method to prune stale remote-tracking branches.

projectDir
  name of the project directory (string)
remoteName
  name of the remote repository (string)

#### Git.gitPull

gitPull(name)

Public method used to pull changes from a remote Git repository.

name
  directory name of the project to be pulled to (string)

Returns:
  flag indicating, that the update contained an add or delete (boolean)

#### Git.gitPush

gitPush(name)

Public method used to push changes to a remote Git repository.

name
  directory name of the project to be pushed from (string)

#### Git.gitReflogBrowser

gitReflogBrowser(projectDir)

Public method used to browse the reflog of the project.

projectDir
  name of the project directory (string)

#### Git.gitRemoveRemote

gitRemoveRemote(projectDir, remoteName)

Public method to remove a remote repository.

projectDir
  name of the project directory (string)
remoteName
  name of the remote repository (string)

#### Git.gitRenameRemote

gitRenameRemote(projectDir, remoteName)

Public method to rename a remote repository.

projectDir
  name of the project directory (string)
remoteName
  name of the remote repository (string)

#### Git.gitRevert

gitRevert(name)

Public method used to revert changes made to a file/directory.

name
  file/directory name to be reverted (string)

Returns:
  flag indicating, that the update contained an add or delete (boolean)

#### Git.gitSbsDiff

gitSbsDiff(name, extended=False, revisions=None)

Public method used to view the difference of a file to the Git repository side-by-side.

name
  file name to be diffed (string)
extended=
  flag indicating the extended variant (boolean)
revisions=
  tuple of two revisions (tuple of strings)

Raises ValueError:
  raised to indicate an invalid name parameter

#### Git.gitShortlog

gitShortlog(projectDir, commit)

Public method to show a short log suitable for inclusion in release announcements.

projectDir
  name of the project directory (string)
commit
  commit to start the log at (strings)

#### Git.gitShowBranch

gitShowBranch(name)

Public method used to show the current branch of the working directory.

name
  file/directory name (string)

#### Git.gitShowConfig

gitShowConfig(projectDir)

Public method to show the combined configuration.

projectDir
  name of the project directory (string)

#### Git.gitShowPatchesStatistics

gitShowPatchesStatistics(projectDir)

Public method to show statistics for a set of patch files.

projectDir
  directory name of the project (string)

#### Git.gitShowRemote

gitShowRemote(projectDir, remoteName)

Public method to show information about a remote repository.

projectDir
  name of the project directory (string)
remoteName
  name of the remote repository (string)

#### Git.gitShowRemotes

gitShowRemotes(projectDir)

Public method to show available remote repositories.

projectDir
  name of the project directory (string)

#### Git.gitStashApply

gitStashApply(projectDir, stashName="")

Public method to apply a stash but keep it.

projectDir
  name of the project directory (string)
stashName
  name of a stash (string)

Returns:
  flag indicating, that the restore contained an add or delete (boolean)

#### Git.gitStashBranch

gitStashBranch(projectDir, stashName="")

Public method to create a branch from a stash.

projectDir
  name of the project directory (string)
stashName
  name of a stash (string)

Returns:
  flag indicating, that the restore contained an add or delete (boolean)

#### Git.gitStashBrowser

gitStashBrowser(projectDir)

Public method used to browse the stashed changes.

projectDir
  name of the project directory (string)

#### Git.gitStashClear

gitStashClear(projectDir)

Public method to delete all stashes.

projectDir
  name of the project directory (string)

Returns:
  flag indicating a successful deletion (boolean)

#### Git.gitStashDrop

gitStashDrop(projectDir, stashName="")

Public method to delete a stash.

projectDir
  name of the project directory (string)
stashName
  name of a stash (string)

Returns:
  flag indicating a successful deletion (boolean)

#### Git.gitStashPop

gitStashPop(projectDir, stashName="")

Public method to apply a stash and delete it.

projectDir
  name of the project directory (string)
stashName
  name of a stash (string)

Returns:
  flag indicating, that the restore contained an add or delete (boolean)

#### Git.gitStashSave

gitStashSave(projectDir)

Public method to save the current changes to a new stash.

projectDir
  name of the project directory (string)

Returns:
  flag indicating, that the save contained an add or delete (boolean)

#### Git.gitStashShowPatch

gitStashShowPatch(projectDir, stashName="")

Public method to show the contents of a stash.

projectDir
  name of the project directory (string)
stashName
  name of a stash (string)

#### Git.gitStatistics

gitStatistics(projectDir)

Public method to show some statistics of the local repository.

projectDir
  name of the project directory (string)

#### Git.gitSubmoduleAdd

gitSubmoduleAdd(projectDir)

Public method to add a submodule to the project.

projectDir (str)
  name of the project directory

#### Git.gitSubmoduleDeinit

gitSubmoduleDeinit(projectDir)

Public method to unregister submodules.

projectDir (str)
  name of the project directory

#### Git.gitSubmoduleInit

gitSubmoduleInit(projectDir)

Public method to initialize one or all submodules.

projectDir (str)
  name of the project directory

#### Git.gitSubmoduleList

gitSubmoduleList(projectDir)

Public method to show a list of all submodules of the project.

projectDir (str)
  name of the project directory

#### Git.gitSubmoduleStatus

gitSubmoduleStatus(projectDir)

Public method to show the status of the submodules.

projectDir (str)
  name of the project directory

#### Git.gitSubmoduleSummary

gitSubmoduleSummary(projectDir)

Public method to show the status of the submodules.

projectDir (str)
  name of the project directory

#### Git.gitSubmoduleSync

gitSubmoduleSync(projectDir)

Public method to synchronize submodules.

projectDir (str)
  name of the project directory

#### Git.gitSubmoduleUpdate

gitSubmoduleUpdate(projectDir, initialize=False, remote=False)

Public method to update submodules.

projectDir (str)
  name of the project directory
initialize (bool)
  flag indicating an initialize and update operation
remote (bool)
  flag indicating a fetch and update operation

#### Git.gitSubmoduleUpdateWithOptions

gitSubmoduleUpdateWithOptions(projectDir)

Public method to update submodules offering a dialog to select the update options.

projectDir (str)
  name of the project directory

#### Git.gitUnstage

gitUnstage(name)

Public method used to unstage a file/directory.

name
  file/directory name to be reverted (string)

Returns:
  flag indicating, that the update contained an add or delete (boolean)

#### Git.gitVerify

gitVerify(projectDir)

Public method to verify the connectivity and validity of objects of the database.

projectDir
  name of the project directory (string)

#### Git.gitVerifyBundle

gitVerifyBundle(projectDir)

Public method to verify a bundle file.

projectDir
  name of the project directory (string)

#### Git.initCommand

initCommand(command)

Public method to initialize a command arguments list.

command
  command name (string)

Returns:
  list of command options (list of string)

#### Git.vcsAdd

vcsAdd(name, isDir=False, noDialog=False)

Public method used to add a file/directory to the Git repository.

name
  file/directory name to be added (string)
isDir
  flag indicating name is a directory (boolean)
noDialog
  flag indicating quiet operations

#### Git.vcsAddBinary

vcsAddBinary(name, isDir=False)

Public method used to add a file/directory in binary mode to the Git repository.

name
  file/directory name to be added (string)
isDir
  flag indicating name is a directory (boolean)

#### Git.vcsAddTree

vcsAddTree(path)

Public method to add a directory tree rooted at path to the Git repository.

path
  root directory of the tree to be added (string or list of strings))

#### Git.vcsAllRegisteredStates

vcsAllRegisteredStates(names, dname, shortcut=True)

Public method used to get the registered states of a number of files in the vcs.

Note: If a shortcut is to be taken, the code will only check, if the named directory has been scanned already. If so, it is assumed, that the states for all files have been populated by the previous run.

names
  dictionary with all filenames to be checked as keys
dname
  directory to check in (string)
shortcut
  flag indicating a shortcut should be taken (boolean)

Returns:
  the received dictionary completed with a combination of canBeCommited and canBeAdded or None in order to signal an error

#### Git.vcsCheckout

vcsCheckout(vcsDataDict, projectDir, noDialog=False)

Public method used to check the project out of a Git repository (clone).

vcsDataDict
  dictionary of data required for the checkout
projectDir
  project directory to create (string)
noDialog
  flag indicating quiet operations

Returns:
  flag indicating an execution without errors (boolean)

#### Git.vcsCleanup

vcsCleanup(name)

Public method used to cleanup the working directory.

name
  directory name to be cleaned up (string)

#### Git.vcsCommandLine

vcsCommandLine(name)

Public method used to execute arbitrary Git commands.

name
  directory name of the working directory (string)

#### Git.vcsCommit

vcsCommit(name, message="", noDialog=False, commitAll=True, amend=False)

Public method used to make the change of a file/directory permanent in the Git repository.

name
  file/directory name to be committed (string or list of strings)
message
  message for this operation (string)
noDialog
  flag indicating quiet operations (boolean)
commitAll
  flag indicating to commit all local changes (boolean)
amend
  flag indicating to amend the HEAD commit (boolean)

#### Git.vcsConvertProject

vcsConvertProject(vcsDataDict, project, addAll=True)

Public method to convert an uncontrolled project to a version controlled project.

vcsDataDict (dict)
  dictionary of data required for the conversion
project (Project)
  reference to the project object
addAll (bool)
  flag indicating to add all files to the repository

#### Git.vcsDiff

vcsDiff(name)

Public method used to view the difference of a file/directory to the Git repository.

If name is a directory and is the project directory, all project files are saved first. If name is a file (or list of files), which is/are being edited and has unsaved modification, they can be saved or the operation may be aborted.

name
  file/directory name to be diffed (string)

#### Git.vcsExists

vcsExists()

Public method used to test for the presence of the git executable.

Returns:
  flag indicating the existance (boolean) and an error message (string)

#### Git.vcsExport

vcsExport(vcsDataDict, projectDir)

Public method used to export a directory from the Git repository.

vcsDataDict
  dictionary of data required for the checkout
projectDir
  project directory to create (string)

Returns:
  flag indicating an execution without errors (boolean)

#### Git.vcsGetProjectBrowserHelper

vcsGetProjectBrowserHelper(browser, project, isTranslationsBrowser=False)

Public method to instantiate a helper object for the different project browsers.

browser
  reference to the project browser object
project
  reference to the project object
isTranslationsBrowser
  flag indicating, the helper is requested for the translations browser (this needs some special treatment)

Returns:
  the project browser helper object

#### Git.vcsGetProjectHelper

vcsGetProjectHelper(project)

Public method to instantiate a helper object for the project.

project
  reference to the project object

Returns:
  the project helper object

#### Git.vcsImport

vcsImport(vcsDataDict, projectDir, noDialog=False, addAll=True)

Public method used to import the project into the Git repository.

vcsDataDict (dict)
  dictionary of data required for the import
projectDir (str)
  project directory (string)
noDialog (bool)
  flag indicating quiet operations
addAll (bool)
  flag indicating to add all files to the repository

Returns:
  tuple containing a flag indicating an execution without errors and a flag indicating the version controll status

Return Type:
  tuple of (bool, bool)

#### Git.vcsInit

vcsInit(vcsDir, noDialog=False)

Public method used to initialize the Git repository.

The initialization is done, when a project is converted into a Git controlled project. Therefore we always return TRUE without doing anything.

vcsDir
  name of the VCS directory (string)
noDialog
  flag indicating quiet operations (boolean)

Returns:
  always TRUE

#### Git.vcsInitConfig

vcsInitConfig(project)

Public method to initialize the VCS configuration.

This method ensures, that an ignore file exists.

project
  reference to the project (Project)

#### Git.vcsLogBrowser

vcsLogBrowser(name, isFile=False)

Public method used to browse the log of a file/directory from the Git repository.

name
  file/directory name to show the log of (string)
isFile=
  flag indicating log for a file is to be shown (boolean)

#### Git.vcsMerge

vcsMerge(name)

Public method used to merge a URL/revision into the local project.

name
  file/directory name to be merged (string)

#### Git.vcsMove

vcsMove(name, project, target=None, noDialog=False)

Public method used to move a file/directory.

name
  file/directory name to be moved (string)
project
  reference to the project object
target
  new name of the file/directory (string)
noDialog
  flag indicating quiet operations

Returns:
  flag indicating successful operation (boolean)

#### Git.vcsName

vcsName()

Public method returning the name of the vcs.

Returns:
  always 'Git' (string)

#### Git.vcsNewProjectOptionsDialog

vcsNewProjectOptionsDialog(parent=None)

Public method to get a dialog to enter repository info for getting a new project.

parent
  parent widget (QWidget)

Returns:
  reference to the instantiated options dialog (GitNewProjectOptionsDialog)

#### Git.vcsOptionsDialog

vcsOptionsDialog(project, archive, editable=False, parent=None)

Public method to get a dialog to enter repository info.

project
  reference to the project object
archive
  name of the project in the repository (string)
editable
  flag indicating that the project name is editable (boolean)
parent
  parent widget (QWidget)

Returns:
  reference to the instantiated options dialog (GitOptionsDialog)

#### Git.vcsRegisteredState

vcsRegisteredState(name)

Public method used to get the registered state of a file in the vcs.

name
  filename to check (string)

Returns:
  a combination of canBeCommited and canBeAdded

#### Git.vcsRemove

vcsRemove(name, project=False, noDialog=False, stageOnly=False)

Public method used to remove a file/directory from the Git repository.

The default operation is to remove the local copy as well.

name
  file/directory name to be removed (string or list of strings))
project
  flag indicating deletion of a project tree (boolean) (not needed)
noDialog
  flag indicating quiet operations (boolean)
stageOnly
  flag indicating to just remove the file from the staging area (boolean)

Returns:
  flag indicating successful operation (boolean)

#### Git.vcsRepositoryInfos

vcsRepositoryInfos(ppath)

Public method to retrieve information about the repository.

ppath
  local path to get the repository infos (string)

Returns:
  string with ready formated info for display (string)

#### Git.vcsShutdown

vcsShutdown()

Public method used to shutdown the Git interface.

#### Git.vcsStatus

vcsStatus(name)

Public method used to view the status of files/directories in the Git repository.

name
  file/directory name(s) to show the status of (string or list of strings)

#### Git.vcsSupportCommandOptions

vcsSupportCommandOptions()

Public method to signal the support of user settable command options.

Returns:
  flag indicating the support of user settable command options (boolean)

#### Git.vcsSwitch

vcsSwitch(name)

Public method used to switch a working directory to a different revision.

name
  directory name to be switched (string)

Returns:
  flag indicating, that the switch contained an add or delete (boolean)

#### Git.vcsTag

vcsTag(name, revision=None, tagName=None)

Public method used to set/remove a tag in the Git repository.

name
  file/directory name to determine the repo root from (string)
revision
  revision to set tag for (string)
tagName
  name of the tag (string)

Returns:
  flag indicating a performed tag action (boolean)

#### Git.vcsUpdate

vcsUpdate(name, noDialog=False, revision=None)

Public method used to update a file/directory with the Git repository.

name
  file/directory name to be updated (string or list of strings)
noDialog
  flag indicating quiet operations (boolean)
revision=
  revision to update to (string)

Returns:
  flag indicating, that the update contained an add or delete (boolean)

Up