[EGIT PATCH 00/31] Push GUI, GUI improvements, various jgit stuff

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



That's the final series for one of my core tasks for GSoC: GUI related
stuff. Little late, but it required lot of polishing.

Traditionally, it's also available at
http://repo.or.cz/w/egit/zawir.git?a=shortlog;h=refs/heads/push
But wait... this time it was pushed from Eclipse! ;)

The series consists of few parts:
1) Various small fixes and improvements to jgit.
2) Lot of refactor, fixes, improvements in Git Clone Wizard.
3) Push GUI with some general purpose components.
(more in commit messages)

Fetch GUI is not implemented yet, although with this
Eclipse-experience and new stuff available in .components, I suspect
it we'll be *much* much easier to do it than this push GUI, so I may
try to do it as well, especially if you enjoy this one. I'm just
starting working on that.

Changes in plugin were tested on Eclipse 3.4 at Linux, Windows XP and
partially at MacOS 10.4 (there are some issues that makes it looking
worse there, one very annoying bug is reported to Eclipse' bugzilla).
I'm now using mostly Eclipse 3.4, but I've tried to use up to 3.3 API.
Shawn also tried this code at Eclipse 3.3 on OS X 10.5, at least up to
some stage.

Comments regarding this GUI are welcome, I hope that yet another mind
can bring some ideas. Recently (few days ago), Shawn brought some
great idea of making Eclipse view for results of operations on remote
(fetch, push) instead of dialog. That would be cool, although
unfortunatelly it was too late for me to do it - to change project at
this stage.

I've got some problem with icons right now, as I'm pretty far from
stating that I'm good at doing that sort of art.
Robin, Tor, I know that you were already contributing some graphics to
egit. If someone of you would like to do some icon for push/fetch with
pleasure, you are welcome. Otherwise I'll have to do some crappy icon
instead ;) Another matter are checkboxes screenshots. I'm not sure
about legality status of including them. Any ideas if/how we co use
them or some another set that we can for sure?

Although that's last big portion of code during this GSoC from me,
I may send some smaller things in next 2 days or fix this stuff if
needed.

Have fun with push;>
Marek / zawir

Marek Zawirski (31):
  Fix Repository.mapObject() for missing objects
  Fix Repository isValidRefName() for empty names
  Fix Repository.resolve() to not throw runtime exceptions
  Document/fix Transport open method for specific case
  Fix RefSpec javadoc regarding spec expanding
  Make wildcard checking public in RefSpec
  Add openAll() and applyConfig() methods to Transport
  Add dryRun option to Transport and console push
  Extract Transport findRemoteRefUpdatesFor() as static method
  Improve javadoc of Transport push()
  Clean up exception issues in RemoteRefUpdate
  Add another RemoteRefUpdate constructor, useful for 2-stage push
  Add getAllRemoteConfigs() to RemoteConfig
  Add setFetchRefSpecs and setPushRefSpecs to RemoteConfig
  Add simple abbreviate() method to ObjectId
  Remove debug/test console output from GitIndex
  Fix typo in uitext.properties message
  Refactor/rewrite CloneSourcePage to universal RepositorySelectionPage
  Clone wizard and related: refactor, clean-up, fixes or improvements
  Move clone logic away from GitCloneWizard to CloneOperation
  Add canCreateSubdir() heuristic in CloneDestinationPage
  Set FileDialog selection appropriately in clone wizard
  Allow selecting empty dir in clone wizard
  Clone wizard: force dir to suggested path only if repo selection
    change
  Create ListRemoteOperation for listing remote repo branches
  Make Clone's SourceBranchPage more user-friendly
  Add few EPL Eclipse icons
  Checkbox images/screenshots
  Universal GUI for specifications edition: RefSpecPanel and related
  Add PushOperation to plugin
  Push GUI

 .../src/org/spearce/egit/core/CoreText.java        |   18 +
 .../src/org/spearce/egit/core/coretext.properties  |    8 +
 .../org/spearce/egit/core/op/CloneOperation.java   |  129 ++-
 .../spearce/egit/core/op/ListRemoteOperation.java  |  104 ++
 .../org/spearce/egit/core/op/PushOperation.java    |  148 ++
 .../spearce/egit/core/op/PushOperationResult.java  |  273 +++
 .../egit/core/op/PushOperationSpecification.java   |   82 +
 .../icons/checkboxes/disabled_checked.gif          |  Bin 0 -> 166 bytes
 .../icons/checkboxes/disabled_unchecked.gif        |  Bin 0 -> 125 bytes
 .../icons/checkboxes/enabled_checked.gif           |  Bin 0 -> 166 bytes
 .../icons/checkboxes/enabled_unchecked.gif         |  Bin 0 -> 157 bytes
 org.spearce.egit.ui/icons/elcl16/add.gif           |  Bin 0 -> 318 bytes
 org.spearce.egit.ui/icons/elcl16/clear.gif         |  Bin 0 -> 595 bytes
 org.spearce.egit.ui/icons/elcl16/delete.gif        |  Bin 0 -> 351 bytes
 org.spearce.egit.ui/icons/elcl16/trash.gif         |  Bin 0 -> 590 bytes
 org.spearce.egit.ui/plugin.properties              |    3 +
 org.spearce.egit.ui/plugin.xml                     |   15 +
 .../src/org/spearce/egit/ui/UIIcons.java           |   25 +
 .../src/org/spearce/egit/ui/UIText.java            |  398 ++++-
 .../egit/ui/internal/actions/PushAction.java       |   47 +
 .../ui/internal/clone/BranchChangeListener.java    |   13 -
 .../ui/internal/clone/CloneDestinationPage.java    |  165 ++-
 .../egit/ui/internal/clone/CloneSourcePage.java    |  460 -----
 .../egit/ui/internal/clone/GitCloneWizard.java     |   92 +-
 .../egit/ui/internal/clone/SourceBranchPage.java   |  327 ++--
 .../ui/internal/components/BaseWizardPage.java     |   58 +
 .../components/CenteredImageLabelProvider.java     |   52 +
 .../internal/components/CheckboxLabelProvider.java |  138 ++
 .../internal/components/ClickableCellEditor.java   |   68 +
 .../internal/components/ComboLabelingSupport.java  |   77 +
 .../ui/internal/components/RefContentProposal.java |  140 ++
 .../egit/ui/internal/components/RefSpecPage.java   |  237 +++
 .../egit/ui/internal/components/RefSpecPanel.java  | 1823 ++++++++++++++++++++
 .../internal/components/RepositorySelection.java   |  133 ++
 .../components/RepositorySelectionPage.java        |  663 +++++++
 .../SelectionChangeListener.java}                  |   19 +-
 .../egit/ui/internal/push/ConfirmationPage.java    |  211 +++
 .../egit/ui/internal/push/PushResultTable.java     |  327 ++++
 .../spearce/egit/ui/internal/push/PushWizard.java  |  250 +++
 .../ui/internal/push/RefUpdateContentProvider.java |   62 +
 .../egit/ui/internal/push/RefUpdateElement.java    |   67 +
 .../egit/ui/internal/push/ResultDialog.java        |   65 +
 .../src/org/spearce/egit/ui/uitext.properties      |  163 ++-
 .../src/org/spearce/jgit/pgm/Fetch.java            |   10 +-
 .../src/org/spearce/jgit/pgm/Push.java             |   55 +-
 .../src/org/spearce/jgit/pgm/TextBuiltin.java      |    4 -
 .../src/org/spearce/jgit/lib/AnyObjectId.java      |   15 +
 .../src/org/spearce/jgit/lib/GitIndex.java         |    3 -
 .../src/org/spearce/jgit/lib/Repository.java       |   64 +-
 .../src/org/spearce/jgit/lib/RepositoryConfig.java |   21 +
 .../org/spearce/jgit/transport/PushProcess.java    |   18 +-
 .../src/org/spearce/jgit/transport/RefSpec.java    |   29 +-
 .../org/spearce/jgit/transport/RemoteConfig.java   |   50 +
 .../spearce/jgit/transport/RemoteRefUpdate.java    |   40 +-
 .../src/org/spearce/jgit/transport/Transport.java  |  283 +++-
 55 files changed, 6471 insertions(+), 981 deletions(-)
 create mode 100644 org.spearce.egit.core/src/org/spearce/egit/core/op/ListRemoteOperation.java
 create mode 100644 org.spearce.egit.core/src/org/spearce/egit/core/op/PushOperation.java
 create mode 100644 org.spearce.egit.core/src/org/spearce/egit/core/op/PushOperationResult.java
 create mode 100644 org.spearce.egit.core/src/org/spearce/egit/core/op/PushOperationSpecification.java
 create mode 100644 org.spearce.egit.ui/icons/checkboxes/disabled_checked.gif
 create mode 100644 org.spearce.egit.ui/icons/checkboxes/disabled_unchecked.gif
 create mode 100644 org.spearce.egit.ui/icons/checkboxes/enabled_checked.gif
 create mode 100644 org.spearce.egit.ui/icons/checkboxes/enabled_unchecked.gif
 create mode 100644 org.spearce.egit.ui/icons/elcl16/add.gif
 create mode 100644 org.spearce.egit.ui/icons/elcl16/clear.gif
 create mode 100644 org.spearce.egit.ui/icons/elcl16/delete.gif
 create mode 100644 org.spearce.egit.ui/icons/elcl16/trash.gif
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/PushAction.java
 delete mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/clone/BranchChangeListener.java
 delete mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/clone/CloneSourcePage.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/BaseWizardPage.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/CenteredImageLabelProvider.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/CheckboxLabelProvider.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/ClickableCellEditor.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/ComboLabelingSupport.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefContentProposal.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPage.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPanel.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RepositorySelection.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RepositorySelectionPage.java
 rename org.spearce.egit.ui/src/org/spearce/egit/ui/internal/{clone/URIishChangeListener.java => components/SelectionChangeListener.java} (51%)
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/ConfirmationPage.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/PushResultTable.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/PushWizard.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/RefUpdateContentProvider.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/RefUpdateElement.java
 create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/push/ResultDialog.java

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux