git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
MZMarek Zawirski <marek.zawirski@gmail.com>
Date
Aug 17, 2008, 20:43 UTC
Message-ID
<1219005852-21496-1-git-send-email-marek.zawirski@gmail.com>

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
Next: Marek Zawirski
Message 1 of 62 in “Push GUI, GUI improvements, various jgit stuff”
  1. 00/31 Push GUI, GUI improvements, various jgit stuffMarek Zawirski, Aug 17, 2008
  2. 01/31 Fix Repository.mapObject() for missing objectsMarek Zawirski, Aug 17, 2008
  3. 02/31 Fix Repository isValidRefName() for empty namesMarek Zawirski, Aug 17, 2008
  4. 03/31 Fix Repository.resolve() to not throw runtime exceptionsMarek Zawirski, Aug 17, 2008
  5. 04/31 Document/fix Transport open method for specific caseMarek Zawirski, Aug 17, 2008
  6. 05/31 Fix RefSpec javadoc regarding spec expandingMarek Zawirski, Aug 17, 2008
  7. 06/31 Make wildcard checking public in RefSpecMarek Zawirski, Aug 17, 2008
  8. 07/31 Add openAll() and applyConfig() methods to TransportMarek Zawirski, Aug 17, 2008
  9. 08/31 Add dryRun option to Transport and console pushMarek Zawirski, Aug 17, 2008
  10. 09/31 Extract Transport findRemoteRefUpdatesFor() as static methodMarek Zawirski, Aug 17, 2008
  11. 10/31 Improve javadoc of Transport push()Marek Zawirski, Aug 17, 2008
  12. 11/31 Clean up exception issues in RemoteRefUpdateMarek Zawirski, Aug 17, 2008
  13. 12/31 Add another RemoteRefUpdate constructor, useful for 2-stage pushMarek Zawirski, Aug 17, 2008
  14. 13/31 Add getAllRemoteConfigs() to RemoteConfigMarek Zawirski, Aug 17, 2008
  15. 14/31 Add setFetchRefSpecs and setPushRefSpecs to RemoteConfigMarek Zawirski, Aug 17, 2008
  16. 15/31 Add simple abbreviate() method to ObjectIdMarek Zawirski, Aug 17, 2008
  17. 16/31 Remove debug/test console output from GitIndexMarek Zawirski, Aug 17, 2008
  18. 17/31 Fix typo in uitext.properties messageMarek Zawirski, Aug 17, 2008
  19. 18/31 Refactor/rewrite CloneSourcePage to universal RepositorySelectionPageMarek Zawirski, Aug 17, 2008
  20. 19/31 Clone wizard and related: refactor, clean-up, fixes or improvementsMarek Zawirski, Aug 17, 2008
  21. 20/31 Move clone logic away from GitCloneWizard to CloneOperationMarek Zawirski, Aug 17, 2008
  22. 21/31 Add canCreateSubdir() heuristic in CloneDestinationPageMarek Zawirski, Aug 17, 2008
  23. 22/31 Set FileDialog selection appropriately in clone wizardMarek Zawirski, Aug 17, 2008
  24. 23/31 Allow selecting empty dir in clone wizardMarek Zawirski, Aug 17, 2008
  25. 24/31 Clone wizard: force dir to suggested path only if repo selection changeMarek Zawirski, Aug 17, 2008
  26. 25/31 Create ListRemoteOperation for listing remote repo branchesMarek Zawirski, Aug 17, 2008
  27. 26/31 Make Clone's SourceBranchPage more user-friendlyMarek Zawirski, Aug 17, 2008
  28. 27/31 Add few EPL Eclipse iconsMarek Zawirski, Aug 17, 2008
  29. 28/31 Checkbox images/screenshotsMarek Zawirski, Aug 17, 2008
  30. 29/31 Universal GUI for specifications edition: RefSpecPanel and relatedMarek Zawirski, Aug 17, 2008
  31. 30/31 Add PushOperation to pluginMarek Zawirski, Aug 17, 2008
  32. 31/31 Push GUIMarek Zawirski, Aug 17, 2008
  33. Robin RosenbergAug 19, 2008
  34. Shawn O. PearceAug 19, 2008
  35. Shawn O. PearceAug 19, 2008
  36. Shawn O. PearceAug 19, 2008
  37. Robin RosenbergAug 19, 2008
  38. Marek ZawirskiAug 20, 2008
  39. 1/6 Remove DEFAULT_DRY_RUN constant from TransportMarek Zawirski, Aug 20, 2008
  40. 2/6 Emphasize that db is a local one in RemoteRefUpdateMarek Zawirski, Aug 20, 2008
  41. 3/6 Handle URIs parsing errors in PushAction betterMarek Zawirski, Aug 20, 2008
  42. 4/6 Fix proposal provider for fetch in RefSpecPanelMarek Zawirski, Aug 20, 2008
  43. 5/6 Fix disappearing "save configuration" label in RefSpecPageMarek Zawirski, Aug 20, 2008
  44. 6/6 Fix RefSpecPage formattingMarek Zawirski, Aug 20, 2008
  45. Shawn O. PearceAug 20, 2008
  46. Git-aware Issue Tracking?Petr Baudis, Aug 20, 2008
  47. Shawn O. PearceAug 20, 2008
  48. Robin RosenbergAug 20, 2008
  49. Martin LanghoffAug 21, 2008
  50. Jakub NarebskiAug 20, 2008
  51. Pierre HabouzitAug 21, 2008
  52. Jakub NarebskiAug 21, 2008
  53. Mike DalessioAug 20, 2008
  54. Imran M YousufAug 21, 2008
  55. Marek ZawirskiAug 25, 2008
  56. Shawn O. PearceAug 25, 2008
  57. Robin RosenbergAug 21, 2008
  58. Shawn O. PearceAug 21, 2008
  59. Robin RosenbergAug 21, 2008
  60. Shawn O. PearceAug 22, 2008
  61. Marek ZawirskiAug 25, 2008
  62. Shawn O. PearceAug 25, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.