C# Class GitSharp.Core.Transport.WalkPushConnection

Generic push support for dumb transport protocols. Since there are no Git-specific smarts on the remote side of the connection the client side must handle everything on its own. The generic push support requires being able to delete, create and overwrite files on the remote side, as well as create any missing directories (if necessary). Typically this can be handled through an FTP style protocol. Objects not on the remote side are uploaded as pack files, using one pack file per invocation. This simplifies the implementation as only two data files need to be written to the remote repository. Push support supplied by this class is not multiuser safe. Concurrent pushes to the same repository may yield an inconsistent reference database which may confuse fetch clients. A single push is concurrently safe with multiple fetch requests, due to the careful order of operations used to update the repository. Clients fetching may receive transient failures due to short reads on certain files if the protocol does not support atomic file replacement. see WalkRemoteObjectDatabase.
Inheritance: BaseConnection, IPushConnection
Afficher le fichier Open project: stschake/GitSharp Class Usage Examples

Private Properties

Свойство Type Description
CreateNewRepository void
DeleteCommand void
PickHead string
SafeDelete void
Sendpack void
UpdateCommand void

Méthodes publiques

Méthode Description
Close ( ) : void
Push ( ProgressMonitor monitor, RemoteRefUpdate>.IDictionary refUpdates ) : void
WalkPushConnection ( IWalkTransport walkTransport, WalkRemoteObjectDatabase w ) : System

Private Methods

Méthode Description
CreateNewRepository ( IList updates ) : void
DeleteCommand ( RemoteRefUpdate u ) : void
PickHead ( IList updates ) : string
SafeDelete ( string path ) : void
Sendpack ( IEnumerable updates, ProgressMonitor monitor ) : void
UpdateCommand ( RemoteRefUpdate u ) : void

Method Details

Close() public méthode

public Close ( ) : void
Résultat void

Push() public méthode

public Push ( ProgressMonitor monitor, RemoteRefUpdate>.IDictionary refUpdates ) : void
monitor ProgressMonitor
refUpdates RemoteRefUpdate>.IDictionary
Résultat void

WalkPushConnection() public méthode

public WalkPushConnection ( IWalkTransport walkTransport, WalkRemoteObjectDatabase w ) : System
walkTransport IWalkTransport
w WalkRemoteObjectDatabase
Résultat System