From: Marek Zawirski <marek.zawirski@gmail.com>
To: robin.rosenberg@dewire.com, spearce@spearce.org
Cc: git@vger.kernel.org, Marek Zawirski <marek.zawirski@gmail.com>
Subject: [EGIT PATCH 00/23] Push implementation
Date: Sat, 28 Jun 2008 00:06:24 +0200 [thread overview]
Message-ID: <1214604407-30572-1-git-send-email-marek.zawirski@gmail.com> (raw)
Finally, series with push implementation. It has taken a "while" to
squash all bugs this time and polish the series, uhh.
Part of this series is signifficant refactor of .transport package to
support code reuse between fetch and push implementations + minor
fixes/improvements.
Needed push operation elements were created. Implementation provides
basis for different push protocols by common push process and its
dendendencies. Push over git-receive-pack based transports is
implemented.
Shawn is now working on support for push over less git-inteligent
protocols. I'm moving into GUI stuff.
Beside of JUnit test cases for (IMO) 2 most complex classes that
revealed few bugs, I've tested manually pgm.Push extensively.
Each protocol (SSH, local, git-daemon) was tested at least 1 time.
So now I can say, that this branch is available on
http://repo.or.cz/w/egit/zawir.git?a=shortlog;h=refs/heads/push
and it was pushed with jgit push! :) Yeah!
It is based (together with packwriter stuff, not old packwrite branch)
on egit's master: 4cf736fdf3.
BTW, in case of any comments, requests, please consider that I'm
semi-off-line next ~2,5weeks, I can sync my laptop each few days,
but certainly not everyday.
PS I saw that Shawn's sftp-push branch also contains new
TransportException constructors conversion, so we may have to
resolve this duplication, I added it as last commit.
Marek Zawirski (23):
Fix: let FetchProcess use fetch() instead of doFetch()
RefUpdate: new possible result Result.IO_FAILURE
Refactor TrackingRefUpdate to not hold RefSpec
New constructor without RefSpec for TrackingRefUpdate
Add RemoteRefUpdate class
Refactor: extract superclass OperationResult from FetchResult
Add PushResult class
Support for fetchThin and pushThin options in Transport
Big refactor: *Connection hierarchy
Add ignoreMissingUninteresting option to PackWriter
Add BasePackPushConnection implementing git-send-pack protocol
Fix: let RevWalk reset correctly before isMergedInto()
Add PushProcess class implementing git-send-pack logic
Clarify Repository#resolve() documentation
Add String versions of methods in RefSpec
Transport* - general support for push() and implementations
Test cases for PushProcess
Test cases for RefSpec to RemoteRefUpdate conversions
Repository search for command line tools
Push command line utility
Don't accept RefSpec with null source for fetch
Add new handy constructors to TransportException,
PackProtocolException
Use new TransportException constructors
.../tst/org/spearce/jgit/lib/PackWriterTest.java | 45 ++-
.../spearce/jgit/transport/PushProcessTest.java | 407 ++++++++++++++++++++
.../org/spearce/jgit/transport/TransportTest.java | 181 +++++++++
.../spearce/jgit/errors/PackProtocolException.java | 30 ++
.../spearce/jgit/errors/TransportException.java | 31 ++
.../src/org/spearce/jgit/lib/PackWriter.java | 37 ++-
.../src/org/spearce/jgit/lib/RefUpdate.java | 27 ++-
.../src/org/spearce/jgit/lib/Repository.java | 2 +-
.../src/org/spearce/jgit/pgm/Fetch.java | 41 +--
.../src/org/spearce/jgit/pgm/Main.java | 24 +-
.../src/org/spearce/jgit/pgm/Push.java | 235 +++++++++++
.../src/org/spearce/jgit/pgm/TextBuiltin.java | 21 +
.../src/org/spearce/jgit/revwalk/RevWalk.java | 2 +-
.../org/spearce/jgit/transport/BaseConnection.java | 103 +++++
.../jgit/transport/BaseFetchConnection.java | 86 ++++
.../spearce/jgit/transport/BasePackConnection.java | 217 +++++++++++
...onnection.java => BasePackFetchConnection.java} | 169 +--------
.../jgit/transport/BasePackPushConnection.java | 226 +++++++++++
.../src/org/spearce/jgit/transport/Connection.java | 104 +++++
.../spearce/jgit/transport/FetchConnection.java | 127 +-----
.../org/spearce/jgit/transport/FetchProcess.java | 8 +-
.../org/spearce/jgit/transport/FetchResult.java | 74 +----
.../spearce/jgit/transport/OperationResult.java | 119 ++++++
.../org/spearce/jgit/transport/PackTransport.java | 3 +-
.../org/spearce/jgit/transport/PushConnection.java | 56 +++-
.../org/spearce/jgit/transport/PushProcess.java | 224 +++++++++++
.../src/org/spearce/jgit/transport/PushResult.java | 84 ++++
.../src/org/spearce/jgit/transport/RefSpec.java | 46 ++-
.../spearce/jgit/transport/RemoteRefUpdate.java | 315 +++++++++++++++
.../spearce/jgit/transport/TrackingRefUpdate.java | 19 +-
.../src/org/spearce/jgit/transport/Transport.java | 252 ++++++++++++-
.../spearce/jgit/transport/TransportBundle.java | 8 +-
.../spearce/jgit/transport/TransportGitAnon.java | 52 +++-
.../spearce/jgit/transport/TransportGitSsh.java | 67 +++-
.../org/spearce/jgit/transport/TransportLocal.java | 114 ++++--
.../org/spearce/jgit/transport/TransportSftp.java | 12 +-
.../jgit/transport/WalkFetchConnection.java | 2 +-
.../org/spearce/jgit/transport/WalkTransport.java | 7 +
38 files changed, 3103 insertions(+), 474 deletions(-)
create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/transport/PushProcessTest.java
create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/transport/TransportTest.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/pgm/Push.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/BaseConnection.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/BaseFetchConnection.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/BasePackConnection.java
rename org.spearce.jgit/src/org/spearce/jgit/transport/{PackFetchConnection.java => BasePackFetchConnection.java} (75%)
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/BasePackPushConnection.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/Connection.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/OperationResult.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/PushProcess.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/PushResult.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/RemoteRefUpdate.java
next reply other threads:[~2008-06-27 22:07 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-27 22:06 Marek Zawirski [this message]
2008-06-27 22:06 ` [EGIT PATCH 01/23] Fix: let FetchProcess use fetch() instead of doFetch() Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 02/23] RefUpdate: new possible result Result.IO_FAILURE Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 03/23] Refactor TrackingRefUpdate to not hold RefSpec Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 04/23] New constructor without RefSpec for TrackingRefUpdate Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 05/23] Add RemoteRefUpdate class Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 06/23] Refactor: extract superclass OperationResult from FetchResult Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 07/23] Add PushResult class Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 08/23] Support for fetchThin and pushThin options in Transport Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 09/23] Big refactor: *Connection hierarchy Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 10/23] Add ignoreMissingUninteresting option to PackWriter Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 11/23] Add BasePackPushConnection implementing git-send-pack protocol Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 12/23] Fix: let RevWalk reset correctly before isMergedInto() Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 13/23] Add PushProcess class implementing git-send-pack logic Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 14/23] Clarify Repository#resolve() documentation Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 15/23] Add String versions of methods in RefSpec Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 16/23] Transport* - general support for push() and implementations Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 17/23] Test cases for PushProcess Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 18/23] Test cases for RefSpec to RemoteRefUpdate conversions Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 19/23] Repository search for command line tools Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 20/23] Push command line utility Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 21/23] Don't accept RefSpec with null source for fetch Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 22/23] Add new handy constructors to TransportException, PackProtocolException Marek Zawirski
2008-06-27 22:06 ` [EGIT PATCH 23/23] Use new TransportException constructors Marek Zawirski
2008-06-28 12:36 ` [EGIT PATCH 20/23] Push command line utility Robin Rosenberg
2008-06-27 23:25 ` [EGIT PATCH 00/23] Push implementation Robin Rosenberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1214604407-30572-1-git-send-email-marek.zawirski@gmail.com \
--to=marek.zawirski@gmail.com \
--cc=git@vger.kernel.org \
--cc=robin.rosenberg@dewire.com \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).