Uploaded image for project: 'Sourcetree For Mac'
  1. Sourcetree For Mac
  2. SRCTREE-658

Custom actions from log / files

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Fixed
    • 1.3
    • General
    • None
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

    Description

      From Walter Stanish:

      I have spent a day reviewing six or seven OSX GUIs with git support. Yours is by far the most mature - congratulations on a great piece of software in a challenging area. Fantastique However, there is something missing!

      I will immediately buy this product if you add the following critical feature for me... custom external actions!

      The rationale for this requirement is as follows: my main project right now is a script that is a heavily Linux kernel-version-linked. Other people have made various forks of this, and I need a GUI to easily automate my workflow, accomplish push/pull requests and most importantly testing. I run Linux in VMWare VMs. I need to ability to rapidly deploy code to a VM, run tests against it, and see the results. An arbitrary "launch external script against this revision" option would allow me to implement all that I need, and other SourceTree users could also use the feature to solve any similar development environment integration issues.

      I do not work with a fully fledged IDE (I am a 'vi' user and this is my first ever Mac ... <3 months old) so the ability to launch scripts from the GUI to facilitate testing and other external actions against revisions (and optionally also files) would be a "deal closer" for my purchase. In addition, I promise to becoming a raving fan and tell all my friends

      Thoughts on such a feature follow.

      For my immediate purposes, it would be enough to have a single external script execute against an entire revision of a branch. The only argument would need to be the directory in which the revision was presently hosted. (The user could configure this in preferences: a textbox with "eg: /path/to/your/tool ${REV_LOC}" and a second textbox 'Name of Action' would suffice as a minimalist configuration UI). However, it would be nice to be able to define multiple actions.

      To take the idea a step further it may be nice do define one or more actions of this sort that can be executed against individual file(s) within a revision of a branch instead of against an entire revision (So I could define 'Edit with vim', 'Calculate line count', 'Show checksums', etc.). In fact, the latter two would make excellent examples which could be disabled by default (Maybe the checksums option being powered by a simple bundled example script showing md5/shasum/cksum binaries' generated hashes for the file in a terminal window).

      Further implementation considerations.

      Per action 'Output type' dropdown....

      • Option to show terminal output for non-interactive console-type tools in a window that is embedded within a popup managed by SourceTree itself (This is a user interface nicety, as it prevents the user having to "apple-Q but wonder if other terminals are open", or "apple-W and then apple-tab back to SourceTree" ... instead they can just apple-W to close the window.) - Option not to show terminal output at all (just launch the process and forget about it) - Option to launch the process in a real Terminal window (a nicety vs. users having to figure out how to do this via the command line)

      Per action hotkey support:

      • It would be insanely cool to be able to apple-V for me to deploy and perform automated testing against a branch revision on a VM, shift-apple-R to do a full regression test on a branch revision through a series of VMs running different historic kernels, apple-E to edit in vi, shift-apple-D to deploy the current branch revision to a VM ready for manual testing, etc.

      Possible extra features:

      • An option for storing the above preferences either on a project or installation-wide basis. - An option to filter 'file'-linked external actions by file type (for example as determined by libmagic, eg: with a regex match on the output of 'file -I ')

      Existing options thoughts:
      You have 'Open' and 'Quick Look' options now. My project includes shell scripts intended to be run as root and perform serious base system modification under Linux - not good to 'Open' by accident on OSX 'Quick Look' shows no useful info for such files.

      GUI thoughts:
      Branch revision linked actions could be accessible with either a right-click on the revision and the name of the external action being visible, or a hotkey when the revision was selected.
      File-linked actions could be accessible with either right-click on the file and the name of the external action being visible, or a hotkey when the file was selected.
      Having written the above, I do realise that it is not good to bloat software with other actions - "do one thing and do it well", and that SourceTree is not an IDE. However, by adding features such as those described above and having them turned off by default (ie: average user sees zero changes until enabling them explicitly in preferences), more advanced users can use SourceTree effectively as an IDE, and normal users will see no interface bloat at all. Therefore the value of your already excellent software is increased and it becomes attractive to a wider market - and as a potential replacement for more expensive IDEs.

      So I think that, commercially and technically, this is a really good feature set for you consider adding.

      Thanks for your consideration in this matter. Remember, a minimal implementation of the above will see my immediate purchase and infinite happiness, plus probably some purchases from users I recommend to. If you see the value in adding some of the additional stuff, that would also be very cool.

      Merci

      Originally http://sourcetree.tenderapp.com/discussions/suggestions/181-custom-external-actions

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              sstreeting Steve Streeting (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: