org.paylogic.jenkins.advancedscm.backends
Class GitBackend

java.lang.Object
  extended by org.paylogic.jenkins.advancedscm.backends.GitBackend
All Implemented Interfaces:
AdvancedSCMManager

public class GitBackend
extends Object
implements AdvancedSCMManager


Constructor Summary
GitBackend(hudson.model.AbstractBuild build, hudson.Launcher launcher, hudson.model.BuildListener listener, hudson.plugins.git.GitSCM scm)
           
 
Method Summary
 void clean()
          Cleans workspace from artifacts.
 void closeBranch(String branch, String message, String username)
          Close given branch.
 String getBranch()
          Get the current branch name in the workspace.
 List<Branch> getBranches(boolean all)
          Get branches from command line output, and put them in a List with Branches so it's nice to work with.
 List<String> getBranchNames(boolean all)
          Get branches from command line output, and put them in a List so it's nice to work with.
 List<Branch> getLocalBranches()
          Get local branches from command line output, and put them in a List with Branches so it's nice to work with.
 List<String> getLocalBranchNames()
          Get branches from command line output, and put them in a List so it's nice to work with.
 ReleaseBranch getReleaseBranch(String branch)
          Get release branch from given branch name.
 String merge(String message, String username)
          Merge possible current branch's heads.
 String mergeWorkspaceWith(String revision, String updateTo, String message, String username)
          Merge current workspace with given revision.
 String pull()
          Executes 'pull' command
 String pull(String remote)
          Pulls changes from remotes.
 String pull(String remote, String branch)
          Pulls from given repository url.
 String push(String... branchNames)
          Executes 'push' command for given branches
 void stripLocal()
          Strip out local commits which are not pushed yet.
 void update(String revision)
          Updates workspace to given revision/branch.
 void updateClean(String revision)
          Updates workspace to given revision/branch with cleaning.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.paylogic.jenkins.advancedscm.AdvancedSCMManager
getBranchNames
 

Constructor Detail

GitBackend

public GitBackend(hudson.model.AbstractBuild build,
                  hudson.Launcher launcher,
                  hudson.model.BuildListener listener,
                  hudson.plugins.git.GitSCM scm)
           throws Exception
Throws:
Exception
Method Detail

getBranches

public List<Branch> getBranches(boolean all)
                         throws AdvancedSCMException
Get branches from command line output, and put them in a List with Branches so it's nice to work with.

Specified by:
getBranches in interface AdvancedSCMManager
Parameters:
all - : get all or only open branches
Returns:
List of Branches
Throws:
AdvancedSCMException

getLocalBranches

public List<Branch> getLocalBranches()
                              throws AdvancedSCMException
Get local branches from command line output, and put them in a List with Branches so it's nice to work with.

Returns:
List of Branches
Throws:
AdvancedSCMException

getLocalBranchNames

public List<String> getLocalBranchNames()
                                 throws AdvancedSCMException
Get branches from command line output, and put them in a List so it's nice to work with.

Returns:
List of String
Throws:
AdvancedSCMException

getBranch

public String getBranch()
                 throws AdvancedSCMException
Get the current branch name in the workspace.

Specified by:
getBranch in interface AdvancedSCMManager
Returns:
String with branch name in it.
Throws:
AdvancedSCMException

update

public void update(String revision)
            throws AdvancedSCMException
Updates workspace to given revision/branch.

Specified by:
update in interface AdvancedSCMManager
Parameters:
revision - : String with revision, hash or branchname to update to.
Throws:
AdvancedSCMException

updateClean

public void updateClean(String revision)
                 throws AdvancedSCMException
Updates workspace to given revision/branch with cleaning.

Specified by:
updateClean in interface AdvancedSCMManager
Parameters:
revision - : String with revision, hash of branchname to update to.
Throws:
AdvancedSCMException

stripLocal

public void stripLocal()
                throws AdvancedSCMException
Strip out local commits which are not pushed yet.

Specified by:
stripLocal in interface AdvancedSCMManager
Throws:
AdvancedSCMException

clean

public void clean()
           throws AdvancedSCMException
Cleans workspace from artifacts.

Specified by:
clean in interface AdvancedSCMManager
Throws:
AdvancedSCMException

mergeWorkspaceWith

public String mergeWorkspaceWith(String revision,
                                 String updateTo,
                                 String message,
                                 String username)
                          throws AdvancedSCMException
Merge current workspace with given revision. Do not forget to commit merge afterwards manually.

Specified by:
mergeWorkspaceWith in interface AdvancedSCMManager
Parameters:
revision - : String with revision, hash or branchname to merge with.
updateTo - : String with revision, hash or branchname to update working copy to before actual merge.
message - : String commit message
username - : String commit user name (with email)
Returns:
String : Output of merge command (should be empty if all went well)
Throws:
AdvancedSCMException

merge

public String merge(String message,
                    String username)
             throws AdvancedSCMException
Merge possible current branch's heads.

Specified by:
merge in interface AdvancedSCMManager
Parameters:
message - : String commit message
username - : String commit user name (with email)
Returns:
String : Output of merge command (should be empty if all went well)
Throws:
AdvancedSCMException

push

public String push(String... branchNames)
            throws AdvancedSCMException
Executes 'push' command for given branches

Specified by:
push in interface AdvancedSCMManager
Throws:
AdvancedSCMException

pull

public String pull()
            throws AdvancedSCMException
Executes 'pull' command

Specified by:
pull in interface AdvancedSCMManager
Throws:
AdvancedSCMException

pull

public String pull(String remote)
            throws AdvancedSCMException
Pulls changes from remotes. Give it a remote to pull changes from there.

Specified by:
pull in interface AdvancedSCMManager
Parameters:
remote -
Throws:
AdvancedSCMException

closeBranch

public void closeBranch(String branch,
                        String message,
                        String username)
Close given branch. Nothing has to be done in git backend.

Specified by:
closeBranch in interface AdvancedSCMManager
Parameters:
branch: - String branch name.
message - : String with message to give this commit.
username - : String commit user name (with email)

pull

public String pull(String remote,
                   String branch)
            throws AdvancedSCMException
Pulls from given repository url. Give it a remote to pull changes from there.

Specified by:
pull in interface AdvancedSCMManager
Parameters:
remote -
branch -
Throws:
AdvancedSCMException

getReleaseBranch

public ReleaseBranch getReleaseBranch(String branch)
                               throws ReleaseBranchInvalidException
Description copied from interface: AdvancedSCMManager
Get release branch from given branch name.

Specified by:
getReleaseBranch in interface AdvancedSCMManager
Parameters:
branch - : String branch name
Returns:
ReleaseBranch : release branch object
Throws:
ReleaseBranchInvalidException

getBranchNames

public List<String> getBranchNames(boolean all)
                            throws AdvancedSCMException
Get branches from command line output, and put them in a List so it's nice to work with.

Parameters:
all: - get all or only open branches
Returns:
List of String
Throws:
AdvancedSCMException


Copyright © 2004-2014. All Rights Reserved.