Giter VIP home page Giter VIP logo

scmpuff's Introduction

scmpuff ๐Ÿ’จ

Makes working with git from the command line quicker by substituting numeric shortcuts for files.

scmpuff is a minimalistic reinterpretation of the core functionality of SCM Breeze, without many of the extras.

It is focused on simplicity, speed, robustness, and cross-platform support. The majority of the functionality is contained within a compiled binary, and the shell integration is under 100 lines of shell script.

scmpuff currently functions in bash and zsh in any *nix-like operating system. It's written with cross-platform support in mind, so hopefully we'll have it functioning on Windows soon as well.

Installation

Download the binary for your platform, and copy it to /usr/local/bin or somewhere else in your default $PATH.

Alternately, if you use homebrew, you can just: brew install scmpuff. ๐Ÿบ

Setup

Currently scmpuff supports bash, zsh and fish for all functionality.

To initialize shell functions, add the following to your ~/.bash_profile or ~/.zshrc file:

eval "$(scmpuff init -s)"

or for fish, add the following to your ~/.config/fish/config.fish file:

scmpuff init --shell=fish | source

This will define the scmpuff shell functions as well as some handy shortcuts.

Usage

Once things are loaded, the most important function you will want to know about is scmpuff_status, which is aliased to gs for short.

This is a replacement for git status that is pretty and shows you numbers next to each filename, for example:

$ gs
# On branch: master  |  +1  |  [*] => $e*
#
โžค Changes not staged for commit
#
#       modified:  [1] main.go
#
โžค Untracked files
#
#      untracked:  [2] HELLO.txt
#      untracked:  [3] features/shell_aliases.feature
#      untracked:  [4] mkramdisk.sh
#

You can now use these numbers in place of filenames when calling normal git commands, e.g. git add 2 3 or git checkout 1.

You can also use numeric ranges, e.g. git reset 2-4. Ranges can even be mixed with normal numeric operands.

Behind the scenes, scmpuff is assigning filenames to sequential environment variables, e.g. $e1, $e2, so you can refer to those with other commands too if needed.

By default, scmpuff will also define a few handy shortcuts to save your fingers, e.g. ga, gd, gco. Check your aliases to see what they are.

FAQ

How do you pronounce it?

๐Ÿ’ I like to say "scum puff." But I'm weird.

How does it compare with SCM Breeze?

The short version: it does less, but is faster and should be more stable and reliable, especially across different platforms.

The long, detailed version: https://github.com/mroth/scmpuff/wiki/scmpuff-vs-SCM-Breeze

Can I disable or change the default git shortcut aliases?

You can disable them via passing --aliases=false to the scmpuff init call in your shell initialization. Then, if you wish to remap them, simple modify your default aliases wherever you normally do, but add aliases mapped to the scmpuff shell functions, e.g. alias gs='scmpuff_status'.

I want to use scmpuff in conjunction with hub or something else that I've aliased git to, how would I do so?

By default, scmpuff will attempt to utilize the absolute path of whatever git it finds in your system PATH, ignoring existing shell aliases. If you want to use a different binary, set $SCMPUFF_GIT_CMD in your shell to the path, for example, export SCMPUFF_GIT_CMD=/usr/local/bin/hub.

scmpuff's People

Contributors

bikezilla avatar creature avatar dependabot[bot] avatar howardburgess avatar jdelstrother avatar mroth avatar zommerfelds avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scmpuff's Issues

Seems wrong color in scmpuff_status

In normal git status, files which haven't been staged are shown in red color while staged files are shown in green color.

However, in the output of scmpuff_status, files which haven't been staged are shown in green and the staged files are shown in yellow which I think is not intuitional.

Is this a bug or feature?

Failed to decode git status change code

I ran gs on one of my projects (after having done an automatic java to kotlin conversion on the project that renamed and updated a large number of files, in case it's relevant), and got the following error message. Happy to help debug or provide any more info!

2017/02/25 14:50:47 
Failed to decode git status change code for chunk: [ization3DFilter.ktsrc/main/java/edu/stanford/cfuller/imageanalysistools/filter/Resrc/main/java/edu/stanford/cfuller/imageanalysistools/filter/InversionFilter.java]
Please file a bug including this error message as well as the output of:

git status --porcelain

You can file the bug at: https://github.com/mroth/scmpuff/issues/
$ git status --porcelain
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/DeschmutzerizerController.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/DeschmutzerizerController.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/DeschmutzerizerInputEventHandler.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/DeschmutzerizerInputEventHandler.kt
R  src/main/java/edu/stanford/cfuller/analysistoolsinterface/BatchAnalysisPlugin_.java -> src/main/java/edu/stanford/cfuller/analysistoolsinterface/DeschmutzerizerPlugin_.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/DeschmutzerizerWindow.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/DeschmutzerizerWindow.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/FilterSelectionFrame.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/FilterSelectionFrame.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/ImageDisplayPanel.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/ImageDisplayPanel.kt
R  src/main/java/edu/stanford/cfuller/analysistoolsinterface/LoggingUtilities.java -> src/main/java/edu/stanford/cfuller/analysistoolsinterface/LoggingUtilities.kt
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/Main.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MainWindow.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MainWindow.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MainWindowController.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MainWindowController.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MaximumIntensityProjectionController.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MaximumIntensityProjectionController.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MaximumIntensityProjectionPlugin_.java
R  src/main/java/edu/stanford/cfuller/analysistoolsinterface/DeschmutzerizerPlugin_.java -> src/main/java/edu/stanford/cfuller/analysistoolsinterface/MaximumIntensityProjectionPlugin_.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MaximumIntensityProjectionWindow.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MaximumIntensityProjectionWindow.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MetricSelectionFrame.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/MetricSelectionFrame.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/OmeroBrowsingWindow.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/OmeroBrowsingWindow.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/OmeroBrowsingWindowController.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/OmeroBrowsingWindowController.kt
R  src/main/java/edu/stanford/cfuller/analysistoolsinterface/TaskCompletionResponder.java -> src/main/java/edu/stanford/cfuller/analysistoolsinterface/OmeroListener.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/ParameterSetupController.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/ParameterSetupController.kt
R  src/main/java/edu/stanford/cfuller/analysistoolsinterface/ParameterSetupPlugin_.java -> src/main/java/edu/stanford/cfuller/analysistoolsinterface/ParameterSetupPlugin_.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/ParameterTransferHandler.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/ParameterTransferHandler.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/ParameterWindow.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/ParameterWindow.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/SegmentationController.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/SegmentationController.kt
D  src/main/java/edu/stanford/cfuller/analysistoolsinterface/SegmentationWindow.java
A  src/main/java/edu/stanford/cfuller/analysistoolsinterface/SegmentationWindow.kt
R  src/main/java/edu/stanford/cfuller/analysistoolsinterface/OmeroListener.java -> src/main/java/edu/stanford/cfuller/analysistoolsinterface/TaskCompletionResponder.kt
R  src/main/java/edu/stanford/cfuller/analysistoolsinterface/TaskController.java -> src/main/java/edu/stanford/cfuller/analysistoolsinterface/TaskController.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/Cluster.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/Cluster.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/ClusterObject.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/ClusterObject.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/DEGaussianMixtureModelClustering.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/DEGaussianMixtureModelClustering.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/GaussianLikelihoodObjectiveFunction.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/GaussianLikelihoodObjectiveFunction.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/ObjectClustering.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/ObjectClustering.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/Positioned.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/clustering/Positioned.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ActiveContourFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ActiveContourFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/AntiseedFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/AntiseedFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/BackgroundEstimationFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/BackgroundEstimationFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/BandpassFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/BandpassFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ConvexHullByLabelFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ConvexHullByLabelFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ConvolutionFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ConvolutionFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/DimensionSwappingFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/DimensionSwappingFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/FillFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/FillFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/Filter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/Filter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/GaussianFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/GaussianFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/GaussianFitFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/GaussianFitFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/GradientFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/GradientFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/GradientHistogramThresholdingFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/GradientHistogramThresholdingFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/GraphJoiningFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/GraphJoiningFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ImageSubtractionFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ImageSubtractionFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/InversionFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/InversionFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/Kernel.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/Kernel.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/KernelFilterND.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/KernelFilterND.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/Label3DFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/Label3DFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LabelBySeedFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LabelBySeedFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LabelFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LabelFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LaplacianFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LaplacianFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LaplacianFilterND.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LaplacianFilterND.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LocalBackgroundEstimation3DFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LocalBackgroundEstimation3DFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LocalBackgroundEstimationFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LocalBackgroundEstimationFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LocalMaximumSeparabilityThresholdingFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/LocalMaximumSeparabilityThresholdingFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/MaskFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/MaskFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/MaximumSeparabilityThresholdingFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/MaximumSeparabilityThresholdingFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/MergeFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/MergeFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/OneToOneLabelBySeedFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/OneToOneLabelBySeedFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/PlaneNormalizationFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/PlaneNormalizationFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RecursiveMaximumSeparability3DFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RecursiveMaximumSeparability3DFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RecursiveMaximumSeparabilityFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RecursiveMaximumSeparabilityFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ReferenceImageRequiredException.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ReferenceImageRequiredException.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RegionMaximumSeparabilityThresholdingFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RegionMaximumSeparabilityThresholdingFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RegionThresholdingFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RegionThresholdingFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RelabelFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RelabelFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/Renormalization3DFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/Renormalization3DFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RenormalizationFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/RenormalizationFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SizeFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ScalespaceFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SeedFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SeedFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SeededFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SeededFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SeededWatershedFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SeededWatershedFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SimpleThresholdingFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SimpleThresholdingFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SizeAbsoluteFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SizeAbsoluteFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/UnionFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/SizeFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/TimeAveragingFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/TimeAveragingFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ScalespaceFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/UnionFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/VariableSizeMeanFilter.java
AM src/main/java/edu/stanford/cfuller/imageanalysistools/filter/VariableSizeMeanFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/VoronoiFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/VoronoiFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/WatershedFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/WatershedFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ZeroPointFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/ZeroPointFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/ClosingFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/ClosingFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/DilationFilter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/DilationFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/ErosionFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/ErosionFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/MorphologicalFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/MorphologicalFilter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/OpeningFilter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/OpeningFilter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/StructuringElement.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/filter/morph/StructuringElement.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/BisquareLinearFit.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/BisquareLinearFit.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/CentroidImageObject.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/CentroidImageObject.kt
RM src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/DifferentialEvolutionMinimizer.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/DifferentialEvolutionMinimizer.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/FitParameters.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/FitParameters.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/GaussianFitter3D.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/GaussianFitter3D.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/GaussianFitter3DWithCovariance.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/GaussianFitter3DWithCovariance.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/GaussianImageObject.java
AM src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/GaussianImageObject.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/GaussianImageObjectWithCovariance.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/GaussianImageObjectWithCovariance.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/ImageObject.java
AM src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/ImageObject.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/NelderMeadMinimizer.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/NelderMeadMinimizer.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/ObjectiveFunction.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/fitting/ObjectiveFunction.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/AnalysisController.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/AnalysisController.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/DataSummary.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/DataSummary.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/DirUtils.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/DirUtils.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/IJAnalysis.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/IJAnalysis.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/ImageAnalysisToolsPlugin_.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/ImageAnalysisToolsPlugin_.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/ImageJStatusUpdater.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/ImageJStatusUpdater.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/LocalAnalysis.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/LocalAnalysis.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/LoggingStatusUpdater.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/LoggingStatusUpdater.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/LoggingUtilities.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/LoggingUtilities.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/MaximumIntensityProjection.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/MaximumIntensityProjection.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/StatusUpdater.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/frontend/StatusUpdater.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/BasicPixelData.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/BasicPixelData.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/DimensionFlipper.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/DimensionFlipper.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/Histogram.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/Histogram.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/image/Image.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/image/Image.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImageCoordinate.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImageCoordinate.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImageFactory.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImageFactory.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImageIterator.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImageIterator.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImageIterator5D.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImageIterator5D.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImagePlusPixelData.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImagePlusPixelData.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImageSet.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImageSet.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImgLibPixelData.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ImgLibPixelData.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/image/PixelData.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/image/PixelData.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/PixelDataFactory.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/PixelDataFactory.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ReadOnlyImageImpl.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/ReadOnlyImageImpl.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/WritableImage.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/WritableImage.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/WritableImageImpl.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/WritableImageImpl.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/image/WritablePixelData.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/image/WritablePixelData.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/ImageReader.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/ImageReader.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/ImageWriter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/ImageWriter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/ImgLibImageReader.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/ImgLibImageReader.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/PromptingImageReader.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/PromptingImageReader.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/omero/OmeroServerConnection.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/omero/OmeroServerConnection.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/omero/OmeroServerImageReader.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/omero/OmeroServerImageReader.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/omero/OmeroServerInfo.java
R  src/main/java/edu/stanford/cfuller/analysistoolsinterface/Main.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/image/io/omero/OmeroServerInfo.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadata.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadata.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadataParser.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadataParser.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadataParserFactory.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadataParserFactory.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadataRubyParser.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadataRubyParser.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadataXMLParser.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadataXMLParser.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadataXMLWriter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/AnalysisMetadataXMLWriter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/RubyScript.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/RubyScript.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/parameters/LegacyParameterXMLParser.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/parameters/LegacyParameterXMLParser.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/parameters/Parameter.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/meta/parameters/Parameter.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/parameters/ParameterDictionary.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/parameters/ParameterDictionary.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/parameters/ParameterParser.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/meta/parameters/ParameterParser.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/meta/parameters/ParameterType.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/meta/parameters/ParameterType.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/method/CentromereFinding3DMethod.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/method/CentromereFinding3DMethod.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/method/CentromereFindingMethod.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/method/CentromereFindingMethod.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/method/ChromosomeCentromereFindingMethod.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/method/ChromosomeCentromereFindingMethod.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/method/DynamicMethod.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/method/DynamicMethod.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/method/Method.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/method/Method.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/method/NoisySpotFindingMethod.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/method/NoisySpotFindingMethod.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/method/RecursiveThresholdingMethod.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/method/RecursiveThresholdingMethod.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/method/ScriptMethod.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/method/ScriptMethod.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/method/SeededWatershedMethod.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/method/SeededWatershedMethod.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/method/TestMethod.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/method/TestMethod.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/method/ThresholdingSizeMethod.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/method/ThresholdingSizeMethod.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/method/TimeAveragingMethod.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/method/TimeAveragingMethod.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/method/TimepointSplittingMethod.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/method/TimepointSplittingMethod.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/method/WatershedMethod.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/method/WatershedMethod.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/metric/AreaAndPerimeterMetric.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/metric/AreaAndPerimeterMetric.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/metric/IntensityPerPixelMetric.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/metric/IntensityPerPixelMetric.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/metric/Measurement.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/metric/Measurement.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/metric/Metric.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/metric/Metric.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/metric/Quantification.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/metric/Quantification.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/metric/ZeroMetric.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/metric/ZeroMetric.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/random/RandomGenerator.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/random/RandomGenerator.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/util/Base64BinaryAdapter.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/util/Base64BinaryAdapter.kt
R  src/main/java/edu/stanford/cfuller/imageanalysistools/util/FileHashCalculator.java -> src/main/java/edu/stanford/cfuller/imageanalysistools/util/FileHashCalculator.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/util/SortedDeque.java
A  src/main/java/edu/stanford/cfuller/imageanalysistools/util/SortedDeque.kt
D  src/main/java/edu/stanford/cfuller/imageanalysistools/util/VoronoiDiagram.java
?? src/main/java/edu/stanford/cfuller/analysistoolsinterface/BatchAnalysisPlugin_.kt
?? src/main/java/edu/stanford/cfuller/imageanalysistools/util/VoronoiDiagram.kt

Add support for numbered git branch

Hi! Great plugin, I just switched from scm_breeze and am having a breeze (ha!)

One thing I'm still missing from breeze is the git branch support: Breeze enumerates git branch names, and it's very useful for various branch actions e.g. checkout, delete, rename with -m, etc.

Can you please add support for this?

Doesn't work with file names with a ' ' character in them.

This seems to break with files that have a space (' ') character in them. Example:

โžค Changes not staged for commit
#
#       modified:  [1] template/app/code/{{CodePool}}/{{Vendor}}/{{Name}}/Block/{{BlockName}}.php
#       modified:  [2] template/app/code/{{CodePool}}/{{Vendor}}/{{Name}}/sql/{{Vendor | toLower}}_{{Name | toLower}}_setup/install-{{InitialVersion}}.php
#
$ git add 1 2 -p
bash:  toLower}}_setup/install-{{InitialVersion}}.php: No such file or directory

The files are formatted as a golang template for use by boilr.

scmpuff version: 0.2.0

get windows support locked down

There probably isn't too much to do here, but it requires a greater understanding on my part of what a typical Windows git CLI environment looks like, so help from Windows developers is greatly requested.

  • get Windows integration testing working via Appveyor
  • resolve existing file path issues (#10)
  • additional shell support needed? (Powershell? something else?)

Figuring out a Windows based integration testing environment is a good first step towards seeing what is broken and what isn't.

Release new version?

Can you release a new version for homebrew so the Fish shell support is enabled in the formula?

scmpuff status: migrate hardcoded ANSI color codes to a cross-platform color library

This will improve cross-platform support for future shells, and also hopefully allow the code to become more clean and understandable. As @stereokai showed in #14, currently Windows in PowerShell does not properly render the ANSI escape codes as color.

There is likely a strong chance to refactor and clean up the UI formatting code with this too, which is worth being opportunistic with if it presents itself.

Some of the color libraries seem to have the built in ability to disable color output entirely in a convenient way without branching all the UI code (fatih/color), which could be a nice command line switch to add to scmpuff status if easy enough to do cleanly.

Package for homebrew

This should be possible, so do this to make installation easier for mac users. Need to look into some research as to how this is done w/r/t go toolchain and making sure binary bottles get poured.

gs a bit confused in /tmp

scmpuff 0.2.1
git version 2.14.0
macOS Sierra

Clone a repo in /tmp and make a change. First confirm gs is aliased to scmpuff:

[hugo:/tmp/scmpuff] master(+1/-0) ยฑ which gs
gs: aliased to scmpuff_status

Then do a gs:

[hugo:/tmp/scmpuff] master(+1/-0) ยฑ gs
# On branch: master  |  [*] => $e*
#
โžค Changes not staged for commit
#
#       modified:  [1] ../../private/tmp/scmpuff/README.md
#

Compare with a bog standard git status:

[hugo:/tmp/scmpuff] master(+1/-0) ยฑ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")
[hugo:/tmp/scmpuff] master(+1/-0) ยฑ

It'd be nice if gs also showed README.md rather than ../../private/tmp/scmpuff/README.md.

Expand unit test coverage

While the integration tests (which originally date back to when we were porting scmbreeze from Ruby) are fairly extensive, there is more of the codebase that could be successfully unit tested in Go natively in isolation (see go test ./... -cover). This would be a good starter project for someone interested in helping out in maintaining this codebase.

consider refactor to use go-git instead of system git

https://github.com/src-d/go-git

This could make shelling out to git completely unnecessary, and could remove some of the complex code related to parsing git porcelain output. It could also be overkill beyond something that already mostly works.

In order to do this, it would involve:

  1. Assessing the stability of the go-git project and code
  2. Assessing feature completeness for everything we need from go-git (not immediately obvious how to get the equivalent of our porcelain call to status -b for branch and ahead/behind info)
  3. Performance benchmarking to make sure there is no perf regression

Add example to readme for reusing numbered variables?

How would you recommend reusing the numbered variables e.g. for opening files for editing .... would I have to do something like this:

alias v1="vim $e1"
alias v2="vim $e2"
alias v3="vim $e3"
# etc

or is there a way to make vim 1 automatically expand into vim $e1

File path separator gets removed

Installed with cmder running as git bash.

SL-Administrator@SL-ADMINIST2CD2 MINGW64 ~/code/test (master)
$ gs
# On branch: master  |  [*] => $e*
#
โžค Changes to be committed
#
#       new file:  [1] dir\readme.md
#

SL-Administrator@SL-ADMINIST2CD2 MINGW64 ~/code/test (master)
$ git add 1
fatal: C:UsersSL-Administratorcodetestdirreadme.md: 'C:UsersSL-Administratorcodetestdirreadme.md' is outside repository

number output clashes with directory name

Given the following directory structure:

โ–ธ tree
.
โ”œโ”€โ”€ 1
โ”‚ย ย  โ”œโ”€โ”€ a.txt
โ”‚ย ย  โ””โ”€โ”€ b.txt
โ””โ”€โ”€ 2.txt

1 directory, 3 files

And a git history as such:

commit 4a89f1d42dea3f0378351566c40dffe2e961abb3 (HEAD -> master)
Author: Kasper Lewau <[email protected]>
Date:   Mon Aug 19 08:11:34 2019 +0200

    init

diff --git a/1/a.txt b/1/a.txt
new file mode 100644
index 0000000..e69de29
diff --git a/1/b.txt b/1/b.txt
new file mode 100644
index 0000000..e69de29
diff --git a/2.txt b/2.txt
new file mode 100644
index 0000000..e69de29

If I modify 1/{a,b}.txt and issue gd 1 to diff the first change, the diff for everything under 1/ prints.

โ–ธ gs
# On branch: master  |  [*] => $e*
#
โžค Changes not staged for commit
#
#       modified:  [1] 1/a.txt
#       modified:  [2] 1/b.txt
#
โ–ธ gd 1
diff --git a/1/a.txt b/1/a.txt
index e69de29..45b983b 100644
--- a/1/a.txt
+++ b/1/a.txt
@@ -0,0 +1 @@
+hi
diff --git a/1/b.txt b/1/b.txt
index e69de29..30e8a65 100644
--- a/1/b.txt
+++ b/1/b.txt
@@ -0,0 +1 @@
+there

First time I stumble onto this, and I've been using scmpuff for quite some time now. I cannot rule out a busted shell/environment on my end, I'll try and reproduce on a fresh system and update the issue.

Not working with `git mergetool`?

scmpuff seems to be not working with mergetool, I cant get git mergetool 3 to work?

Hi! Thanks for a great timesaver!

I've tried to use the scmpuff numbering for merging, but it seems it does not work.

Am I doing it wrong or shall I try the env variables instead? Any ideas/tips?

BR! /marcus

transition integration tests to aruba v1

Aruba 1.0 release looks like it is coming soon, so this seems like a good place to lock down our integration tests, and I believe may(?) help with getting integration tests running on Windows.

Puff breaks when a rebase fails to merge

When you attempt a rebase, and one of the commits fail to merge, a handful of the commands no longer work. I had to solve this through the VCS support in my IDE.

Here's an example output:

Auto-merging package.json
CONFLICT (content): Merge conflict in package.json
Recorded preimage for 'package.json'
error: Failed to merge in the changes.
Patch failed at 0024 Updated package deps.
The copy of the patch that failed is found in: .git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

[10:18:39] miles_johnson:lux > gs
2016/04/07 10:18:54 Failed to parse branch name for output: [## HEAD (no branch)]
[10:18:54] miles_johnson:lux > git status
rebase in progress; onto ea3b6d7
You are currently rebasing branch 'milesj/new-header' on 'ea3b6d7'.
  (fix conflicts and then run "git rebase --continue")
  (use "git rebase --skip" to skip this patch)
  (use "git rebase --abort" to check out the original branch)

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

    both modified:   package.json

no changes added to commit (use "git add" and/or "git commit -a")
[10:20:34] miles_johnson:lux > ga 1
2016/04/07 10:21:18 Failed to parse branch name for output: [## HEAD (no branch)]
[10:21:18] miles_johnson:lux > git add package.json 
2016/04/07 10:21:21 Failed to parse branch name for output: [## HEAD (no branch)]

Inconsistent relative paths with symlinks in scmpuff expand

I ran in to an interesting edge case in the way scmpuff_status works - If I'm running the gs from a symlinked repository directory, the filenames are completely expanded out, while git status shows them relative to the actual repository itself.

Example:

With the following folder structure:

~/Code/
    client-name/
        namespace/
            project-repo/
                .git/
                docs
                โ€ฆ
    project-repo-symlink <linked to project-repo>

Difference in behavior between gs and git status:

$ pwd
/User/Vidur/Code
$ cd project-repo-symlink
$ pwd
/User/Vidur/Code/project-repo-symlink
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    docs/TEST.md
$ gs
# On branch: master  |  [*] => $e*
#
โžค Untracked files
#
#      untracked:  [1] ../client-name/namespace/project-repo/docs/TEST.md
$ git rev-parse --show-toplevel
/User/Vidur/Code/client-name/namespace/project-repo

* 'git' here refers to /usr/local/bin/git, not the scmpuff git wrapper

This seems to be because of the use of git rev-parse --show-toplevel in process.go#105, which identifies the full path to the project root, and I guess the filenames are calculated relative to that.

I'd like to attempt to patch this myself, but I haven't figured out the simplest solution yet. (I also have zero knowledge of Go). Figured I'd make this issue first to track it.

Unable to parse git status after using `git add . -N`

โ€ข git add . -N          
2020/08/19 14:08:07 
Failed to decode git status change code for chunk: [ A lib/censored_path.ex]
Please file a bug including this error message as well as the output of:

git status --porcelain

You can file the bug at: https://github.com/mroth/scmpuff/issues/
		
โ€ข git status --porcelain
 A lib/censored_path.ex
 M lib/modified_file.ex

From man git-add

       -N, --intent-to-add
           Record only the fact that the path will be added later. An entry for the path is
           placed in the index with no content. This is useful for, among other things,
           showing the unstaged content of such files with git diff and committing them with
           git commit -a.

I'm using this flow when I want to add new files using -p. Without intent-to-add git add -p won't pick up the new files.

Native build errors in cobra

Attempting to build on machine without Ruby:

$ script/build
# _/Users/kmatt/source/scmpuff
./main.go:40:38: cannot use inits.CommandInit() (type *"github.com/mroth/scmpuff/vendor/github.com/spf13/cobra".Command) as type *"github.com/spf13/cobra".Command in argument to puffCmd.AddCommand
./main.go:41:41: cannot use expand.CommandExpand() (type *"github.com/mroth/scmpuff/vendor/github.com/spf13/cobra".Command) as type *"github.com/spf13/cobra".Command in argument to puffCmd.AddCommand
./main.go:42:41: cannot use status.CommandStatus() (type *"github.com/mroth/scmpuff/vendor/github.com/spf13/cobra".Command) as type *"github.com/spf13/cobra".Command in argument to puffCmd.AddCommand
$ go version
go version go1.10.3 darwin/amd64

Is this an issue with scmpuff or spf13/cobra ?

shell detection and manual specification in scmpuff init

Once (if) there exist working scripts for different shells (see the desire for a fish shell in #8 and powershell support in #14), we'll need this.

  • ability to switch which shell script gets output via a command line argument to scmpuff init
  • automatic shell detection attempt when no shell is specified to scmpuff init (I have some stub code with ideas for this)
  • integration tests for the above

`git log -n 1` doesn't seem to work

Hi, thanks for this great tool. git isn't the same without it.

I think I found a bug. git log -1 and git log -n1 work fine, but git log -n 1 only works for non-scmpuff git.

$ git clone https://github.com/mroth/scmpuff.git
$ cd scmpuff
$ git log -n 1  --pretty=format:%H
(no output)
$ git log -1  --pretty=format:%H
9d53550badab476bf97b50d79a572840138871a2
$ git log -n1  --pretty=format:%H
9d53550badab476bf97b50d79a572840138871a2
$ /usr/bin/git log -n 1  --pretty=format:%H
9d53550badab476bf97b50d79a572840138871a2

What's the meaning behind the "[*] => $e*" part?

When I run gst I see some output that looks like this:

On branch: feature-branch  |  [*] => $e*

What does the part after the pipe indicate? I thought that maybe my terminal was failing to expand a variable somewhere, but I can see this included in the screencast & example output in the readme too.

PS. Thanks for creating scmpuff - I find it super-useful. :)

failed to decode in fish shell

Started using scmpuff in fish shell and it keeps failing to decode. Any ideas? Here is an example:

โฏ gs
2022/12/03 12:42:03 
Failed to decode git status change code for chunk: [ A day2/day2.pro]
Please file a bug including this error message as well as the output of:

git status --porcelain

You can file the bug at: https://github.com/mroth/scmpuff/issues/

โฏ git status --porcelain
 M aoc2022.pro
 A day2/day2.pro
 A day2/in.txt
 A day2/main.cpp

โฏ scmpuff version
scmpuff 0.5.0

Constantly getting Go stack trace errors

No matter what commands I run, I randomly get Go stack traces like the following:

[15:58:34] miles_johnson:lux > gcm "Commit message"
failed MSpanList_Insert 0x444000 0xa24e9024f6cd 0x0 0x0
fatal error: MSpanList_Insert

runtime stack:
runtime.throw(0x28cf90, 0x10)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/panic.go:530 +0x90 fp=0x7fff5fbff050 sp=0x7fff5fbff038
runtime.(*mSpanList).insert(0x3a8928, 0x444000)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/mheap.go:933 +0x293 fp=0x7fff5fbff080 sp=0x7fff5fbff050
runtime.(*mheap).freeSpanLocked(0x3a8120, 0x444000, 0x100, 0x0)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/mheap.go:809 +0x4be fp=0x7fff5fbff0e8 sp=0x7fff5fbff080
runtime.(*mheap).grow(0x3a8120, 0x8, 0x0)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/mheap.go:675 +0x2a0 fp=0x7fff5fbff140 sp=0x7fff5fbff0e8
runtime.(*mheap).allocSpanLocked(0x3a8120, 0x1, 0x0)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/mheap.go:553 +0x4e3 fp=0x7fff5fbff198 sp=0x7fff5fbff140
runtime.(*mheap).alloc_m(0x3a8120, 0x1, 0x15, 0x0)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/mheap.go:437 +0x119 fp=0x7fff5fbff1c8 sp=0x7fff5fbff198
runtime.(*mheap).alloc.func1()
	/usr/local/Cellar/go/1.6/libexec/src/runtime/mheap.go:502 +0x41 fp=0x7fff5fbff1f8 sp=0x7fff5fbff1c8
runtime.systemstack(0x7fff5fbff218)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/asm_amd64.s:307 +0xab fp=0x7fff5fbff200 sp=0x7fff5fbff1f8
runtime.(*mheap).alloc(0x3a8120, 0x1, 0x10000000015, 0xe9cf)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/mheap.go:503 +0x63 fp=0x7fff5fbff248 sp=0x7fff5fbff200
runtime.(*mcentral).grow(0x3a9d20, 0x0)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/mcentral.go:209 +0x93 fp=0x7fff5fbff2b0 sp=0x7fff5fbff248
runtime.(*mcentral).cacheSpan(0x3a9d20, 0x3a4478)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/mcentral.go:89 +0x47d fp=0x7fff5fbff2f0 sp=0x7fff5fbff2b0
runtime.(*mcache).refill(0x440000, 0x15, 0x7fff5fbff358)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/mcache.go:119 +0xcc fp=0x7fff5fbff328 sp=0x7fff5fbff2f0
runtime.mallocgc.func2()
	/usr/local/Cellar/go/1.6/libexec/src/runtime/malloc.go:642 +0x2b fp=0x7fff5fbff348 sp=0x7fff5fbff328
runtime.systemstack(0x7fff5fbff3e8)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/asm_amd64.s:307 +0xab fp=0x7fff5fbff350 sp=0x7fff5fbff348
runtime.mallocgc(0x180, 0x257ba0, 0x0, 0x800000000)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/malloc.go:643 +0x869 fp=0x7fff5fbff428 sp=0x7fff5fbff350
runtime.newobject(0x257ba0, 0x3a47b0)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/malloc.go:781 +0x42 fp=0x7fff5fbff450 sp=0x7fff5fbff428
runtime.malg(0x8000, 0x3a4a20)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/proc.go:2634 +0x27 fp=0x7fff5fbff488 sp=0x7fff5fbff450
runtime.mpreinit(0x3a4d60)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/os1_darwin.go:140 +0x1f fp=0x7fff5fbff4a0 sp=0x7fff5fbff488
runtime.mcommoninit(0x3a4d60)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/proc.go:494 +0x105 fp=0x7fff5fbff4e8 sp=0x7fff5fbff4a0
runtime.schedinit()
	/usr/local/Cellar/go/1.6/libexec/src/runtime/proc.go:434 +0x79 fp=0x7fff5fbff530 sp=0x7fff5fbff4e8
runtime.rt0_go(0x7fff5fbff568, 0x7, 0x7fff5fbff568, 0x0, 0x0, 0x7, 0x7fff5fbff748, 0x7fff5fbff750, 0x7fff5fbff757, 0x7fff5fbff75a, ...)
	/usr/local/Cellar/go/1.6/libexec/src/runtime/asm_amd64.s:138 +0x132 fp=0x7fff5fbff538 sp=0x7fff5fbff530

I recently upgrade to Sierra, and upgraded all my brew dependencies. I'm not entirely sure which is causing the problem.

Easily extensible git aliases

This is almost certainly out-of-scope of this project (similar to #5), but I wanted to bring it up all the same, and get your thoughts.

SCM Breeze offers this awesome, huge collection of git aliases that run through the git wrapper there (courtesy of the .git.scmbrc file), e.g., ga, gco, gcob, gc, etc.

Any chance of providing this kind of easily extensible aliasing to scmpuff?

Failed to decode Xcode related status

Hey! I'm loving this utility, I was working on a new iOS app, and it looks like scmpuff had some issues decoding the status of (what I believe is a) asset catalog change. Output:

2017/12/20 18:43:19 
Failed to decode git status change code for chunk: [ngR  Lucid/Supporting Files/Assets.xcassets/sleep-paralysis.imageset/sleep-paLucid/Assets.xcassets/lucid-dream.imageset/lucid-dream.png]




 M Lucid.xcodeproj/project.pbxproj
R  Lucid/Auth.storyboard -> Lucid/Auth/Auth.storyboard
R  Lucid/LandingViewController.swift -> Lucid/Auth/LandingViewController.swift
AM Lucid/Home/DairyViewController.swift
AM Lucid/Home/Diary.storyboard
AM Lucid/Home/ExperimentsViewController.swift
AM Lucid/Home/Home.storyboard
AM Lucid/Home/HomeTabBarController.swift
AM Lucid/Home/Settings.storyboard
AM Lucid/Home/SettingsViewController.swift
R  Lucid/Assets.xcassets/AppIcon.appiconset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/AppIcon.appiconset/Contents.json"
R  Lucid/Assets.xcassets/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/Contents.json"
R  "Lucid/Assets.xcassets/Pretty things/Contents.json" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Contents.json"
R  "Lucid/Assets.xcassets/Pretty things/Parts/Contents.json" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/Contents.json"
R  "Lucid/Assets.xcassets/Pretty things/Parts/arrows.imageset/Bitmap-1.png" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/arrows.imageset/Bitmap-1.png"
R  "Lucid/Assets.xcassets/Pretty things/Parts/arrows.imageset/[email protected]" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/arrows.imageset/[email protected]"
R  "Lucid/Assets.xcassets/Pretty things/Parts/arrows.imageset/[email protected]" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/arrows.imageset/[email protected]"
R  "Lucid/Assets.xcassets/Pretty things/Parts/arrows.imageset/Contents.json" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/arrows.imageset/Contents.json"
R  "Lucid/Assets.xcassets/Pretty things/Parts/dots.imageset/Bitmap-3.png" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/dots.imageset/Bitmap-3.png"
R  "Lucid/Assets.xcassets/Pretty things/Parts/dots.imageset/[email protected]" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/dots.imageset/[email protected]"
R  "Lucid/Assets.xcassets/Pretty things/Parts/dots.imageset/[email protected]" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/dots.imageset/[email protected]"
R  "Lucid/Assets.xcassets/Pretty things/Parts/dots.imageset/Contents.json" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/dots.imageset/Contents.json"
R  "Lucid/Assets.xcassets/Pretty things/Parts/outline.imageset/Contents.json" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/outline.imageset/Contents.json"
R  "Lucid/Assets.xcassets/Pretty things/Parts/outline.imageset/pretty-circle.png" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/outline.imageset/pretty-circle.png"
R  "Lucid/Assets.xcassets/Pretty things/Parts/outline.imageset/[email protected]" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/outline.imageset/[email protected]"
R  "Lucid/Assets.xcassets/Pretty things/Parts/outline.imageset/[email protected]" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/Parts/outline.imageset/[email protected]"
R  "Lucid/Assets.xcassets/Pretty things/pretty-things.imageset/Contents.json" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/pretty-things.imageset/Contents.json"
R  "Lucid/Assets.xcassets/Pretty things/pretty-things.imageset/pretty-thing.png" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/pretty-things.imageset/pretty-thing.png"
R  "Lucid/Assets.xcassets/Pretty things/pretty-things.imageset/[email protected]" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/pretty-things.imageset/[email protected]"
R  "Lucid/Assets.xcassets/Pretty things/pretty-things.imageset/[email protected]" -> "Lucid/Supporting Files/Assets.xcassets/Pretty things/pretty-things.imageset/[email protected]"
R  Lucid/Assets.xcassets/add-button.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/add-button.imageset/Contents.json"
R  Lucid/Assets.xcassets/add-button.imageset/add-button.png -> "Lucid/Supporting Files/Assets.xcassets/add-button.imageset/add-button.png"
R  Lucid/Assets.xcassets/add-button.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/add-button.imageset/[email protected]"
R  Lucid/Assets.xcassets/add-button.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/add-button.imageset/[email protected]"
R  Lucid/Assets.xcassets/back-arrow.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/back-arrow.imageset/Contents.json"
R  Lucid/Assets.xcassets/back-arrow.imageset/back-arrow.png -> "Lucid/Supporting Files/Assets.xcassets/back-arrow.imageset/back-arrow.png"
R  Lucid/Assets.xcassets/back-arrow.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/back-arrow.imageset/[email protected]"
R  Lucid/Assets.xcassets/back-arrow.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/back-arrow.imageset/[email protected]"
R  Lucid/Assets.xcassets/bunny-logo.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/bunny-logo.imageset/Contents.json"
R  Lucid/Assets.xcassets/bunny-logo.imageset/main-logo.png -> "Lucid/Supporting Files/Assets.xcassets/bunny-logo.imageset/main-logo.png"
R  Lucid/Assets.xcassets/bunny-logo.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/bunny-logo.imageset/[email protected]"
R  Lucid/Assets.xcassets/bunny-logo.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/bunny-logo.imageset/[email protected]"
R  Lucid/Assets.xcassets/go-button.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/go-button.imageset/Contents.json"
R  Lucid/Assets.xcassets/go-button.imageset/go-button.png -> "Lucid/Supporting Files/Assets.xcassets/go-button.imageset/go-button.png"
R  Lucid/Assets.xcassets/go-button.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/go-button.imageset/[email protected]"
R  Lucid/Assets.xcassets/go-button.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/go-button.imageset/[email protected]"
R  Lucid/Assets.xcassets/home.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/home.imageset/Contents.json"
R  Lucid/Assets.xcassets/home.imageset/home-2.png -> "Lucid/Supporting Files/Assets.xcassets/home.imageset/home-2.png"
R  Lucid/Assets.xcassets/home.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/home.imageset/[email protected]"
R  Lucid/Assets.xcassets/home.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/home.imageset/[email protected]"
R  Lucid/Assets.xcassets/info-icon.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/info-icon.imageset/Contents.json"
R  Lucid/Assets.xcassets/info-icon.imageset/info-icon.png -> "Lucid/Supporting Files/Assets.xcassets/info-icon.imageset/info-icon.png"
R  Lucid/Assets.xcassets/info-icon.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/info-icon.imageset/[email protected]"
R  Lucid/Assets.xcassets/info-icon.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/info-icon.imageset/[email protected]"
R  Lucid/Assets.xcassets/journal.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/journal.imageset/Contents.json"
R  Lucid/Assets.xcassets/journal.imageset/journal-2.png -> "Lucid/Supporting Files/Assets.xcassets/journal.imageset/journal-2.png"
R  Lucid/Assets.xcassets/journal.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/journal.imageset/[email protected]"
R  Lucid/Assets.xcassets/journal.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/journal.imageset/[email protected]"
R  Lucid/Assets.xcassets/login-frame.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/login-frame.imageset/Contents.json"
R  Lucid/Assets.xcassets/login-frame.imageset/login-frame.png -> "Lucid/Supporting Files/Assets.xcassets/login-frame.imageset/login-frame.png"
R  Lucid/Assets.xcassets/login-frame.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/login-frame.imageset/[email protected]"
R  Lucid/Assets.xcassets/login-frame.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/login-frame.imageset/[email protected]"
R  Lucid/Assets.xcassets/lucid-dream.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/lucid-dream.imageset/Contents.json"
R  Lucid/Assets.xcassets/lucid-dream.imageset/lucid-dream.png -> "Lucid/Supporting Files/Assets.xcassets/lucid-dream.imageset/lucid-dream.png"
R  Lucid/Assets.xcassets/lucid-dream.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/lucid-dream.imageset/[email protected]"
R  Lucid/Assets.xcassets/lucid-dream.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/lucid-dream.imageset/[email protected]"
R  Lucid/Assets.xcassets/methods.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/methods.imageset/Contents.json"
R  Lucid/Assets.xcassets/methods.imageset/methods-1.png -> "Lucid/Supporting Files/Assets.xcassets/methods.imageset/methods-1.png"
R  Lucid/Assets.xcassets/methods.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/methods.imageset/[email protected]"
R  Lucid/Assets.xcassets/methods.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/methods.imageset/[email protected]"
R  Lucid/Assets.xcassets/neutral.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/neutral.imageset/Contents.json"
R  Lucid/Assets.xcassets/neutral.imageset/neutral.png -> "Lucid/Supporting Files/Assets.xcassets/neutral.imageset/neutral.png"
R  Lucid/Assets.xcassets/neutral.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/neutral.imageset/[email protected]"
R  Lucid/Assets.xcassets/neutral.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/neutral.imageset/[email protected]"
R  Lucid/Assets.xcassets/nightmare.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/nightmare.imageset/Contents.json"
R  Lucid/Assets.xcassets/nightmare.imageset/nightmare.png -> "Lucid/Supporting Files/Assets.xcassets/nightmare.imageset/nightmare.png"
R  Lucid/Assets.xcassets/nightmare.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/nightmare.imageset/[email protected]"
R  Lucid/Assets.xcassets/nightmare.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/nightmare.imageset/[email protected]"
R  Lucid/Assets.xcassets/pleasant.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/pleasant.imageset/Contents.json"
R  Lucid/Assets.xcassets/pleasant.imageset/pleasant.png -> "Lucid/Supporting Files/Assets.xcassets/pleasant.imageset/pleasant.png"
R  Lucid/Assets.xcassets/pleasant.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/pleasant.imageset/[email protected]"
R  Lucid/Assets.xcassets/pleasant.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/pleasant.imageset/[email protected]"
R  Lucid/Assets.xcassets/reality-check.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/reality-check.imageset/Contents.json"
R  Lucid/Assets.xcassets/reality-check.imageset/reality-check.png -> "Lucid/Supporting Files/Assets.xcassets/reality-check.imageset/reality-check.png"
R  Lucid/Assets.xcassets/reality-check.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/reality-check.imageset/[email protected]"
R  Lucid/Assets.xcassets/reality-check.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/reality-check.imageset/[email protected]"
R  Lucid/Assets.xcassets/setting.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/setting.imageset/Contents.json"
R  Lucid/Assets.xcassets/setting.imageset/setting-1.png -> "Lucid/Supporting Files/Assets.xcassets/setting.imageset/setting-1.png"
R  Lucid/Assets.xcassets/setting.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/setting.imageset/[email protected]"
R  Lucid/Assets.xcassets/setting.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/setting.imageset/[email protected]"
R  Lucid/Assets.xcassets/sleep-paralysis.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/sleep-paralysis.imageset/Contents.json"
R  Lucid/Assets.xcassets/sleep-paralysis.imageset/sleep-paralysis.png -> "Lucid/Supporting Files/Assets.xcassets/sleep-paralysis.imageset/sleep-paralysis.png"
R  Lucid/Assets.xcassets/sleep-paralysis.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/sleep-paralysis.imageset/[email protected]"
R  Lucid/Assets.xcassets/sleep-paralysis.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/sleep-paralysis.imageset/[email protected]"
R  Lucid/Assets.xcassets/tagline.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/tagline.imageset/Contents.json"
R  Lucid/Assets.xcassets/tagline.imageset/tagline.png -> "Lucid/Supporting Files/Assets.xcassets/tagline.imageset/tagline.png"
R  Lucid/Assets.xcassets/tagline.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/tagline.imageset/[email protected]"
R  Lucid/Assets.xcassets/tagline.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/tagline.imageset/[email protected]"
R  "Lucid/Assets.xcassets/to be implemented.imageset/Contents.json" -> "Lucid/Supporting Files/Assets.xcassets/to be implemented.imageset/Contents.json"
R  "Lucid/Assets.xcassets/to be implemented.imageset/to be implemented.png" -> "Lucid/Supporting Files/Assets.xcassets/to be implemented.imageset/to be implemented.png"
R  Lucid/Assets.xcassets/worded-logo.imageset/Contents.json -> "Lucid/Supporting Files/Assets.xcassets/worded-logo.imageset/Contents.json"
R  Lucid/Assets.xcassets/worded-logo.imageset/lucid-05.png -> "Lucid/Supporting Files/Assets.xcassets/worded-logo.imageset/lucid-05.png"
R  Lucid/Assets.xcassets/worded-logo.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/worded-logo.imageset/[email protected]"
R  Lucid/Assets.xcassets/worded-logo.imageset/[email protected] -> "Lucid/Supporting Files/Assets.xcassets/worded-logo.imageset/[email protected]"
R  Lucid/Base.lproj/LaunchScreen.storyboard -> "Lucid/Supporting Files/Base.lproj/LaunchScreen.storyboard"
R  Lucid/GoogleService-Info.plist -> "Lucid/Supporting Files/GoogleService-Info.plist"
R  Lucid/Info.plist -> "Lucid/Supporting Files/Info.plist"

Thank you for all of your work!
โค๏ธ

Wrappers for common shell commands

One thing I miss from SCM Breeze is the ability to wrap common shell utilities like cp, mv, ls, vim, etc. For example:

$ gs
# On branch: master  |  +1  |  [*] => $e*
#
โžค Changes not staged for commit
#
#       modified:  [1] main.go
#
โžค Untracked files
#
#      untracked:  [2] HELLO.txt
#      untracked:  [3] features/shell_aliases.feature
#      untracked:  [4] mkramdisk.sh
#
$ mv 2 HELLO_AGAIN.txt
$ vim 4

How do you feel about adding this feature? Like you, I'm not a fan of the various bloat that SCM Breeze introduces, but I've come to rely on this particular feature, and have built up some muscle memory around it. vim 4 is much easier to type than vim $e4.

Alter colours of git status

With vanilla git status I would have staged files as green and changed as red which helps at a glance know what's yet to be added. Is it possible to mimic this with scmpuff? Right now not staged is green and staged is yellow.

Thanks for the work on the plugin, really helping my workflow

Git status truncates branch names

Just noticed that gs truncates branch names that are based on versions. For example:

[21:25:11] Miles:toolkit > gs
# On branch: 3  |  No changes (working directory clean)
[21:25:15] Miles:toolkit > git status
On branch 3.0
Your branch is up-to-date with 'origin/3.0'.
nothing to commit, working directory clean

fatal: '' is not a valid branch name

Branch names that are all digits:

โฏ git checkout -b 713
fatal: '' is not a valid branch name
โฏ which git
git () {
        case $1 in
                (commit | blame | log | rebase | merge) scmpuff exec -- "$SCMPUFF_GIT_CMD" "$@" ;;
                (checkout | diff | rm | reset | restore) scmpuff exec --relative -- "$SCMPUFF_GIT_CMD" "$@" ;;
                (add) scmpuff exec -- "$SCMPUFF_GIT_CMD" "$@"
                        scmpuff_status ;;
                (*) "$SCMPUFF_GIT_CMD" "$@" ;;
        esac
}

scmpuff 0.5.0
zsh

Support short git status style

Is there a way to get otuput in the short flavour of git status? I am using alias gs='git status -sb' and would like to use scmpuff with it. Side by side of git status -sb and the "long" output from scmpuff_status:

> gs                                            > scmpuff_status                                            
## master...origin/master [ahead 9]             # On branch: master  |  +9  |  [*] => $e*                   
 M dotfiles/nvim/bundle/MatchTagAlways          #                                                           
 M dotfiles/nvim/bundle/YouCompleteMe           โžค Changes not staged for commit                             
 M dotfiles/nvim/bundle/camelcasemotion         #                                                           
 M dotfiles/nvim/bundle/ctrlp                   #       modified:  [1] dotfiles/nvim/bundle/MatchTagAlways  
 M dotfiles/nvim/bundle/dirdiff                 #       modified:  [2] dotfiles/nvim/bundle/YouCompleteMe   
 M dotfiles/nvim/bundle/editorconfig            #       modified:  [3] dotfiles/nvim/bundle/camelcasemotion 
 M dotfiles/nvim/bundle/javacomplete            #       modified:  [4] dotfiles/nvim/bundle/ctrlp           
 M dotfiles/nvim/bundle/matchit                 #       modified:  [5] dotfiles/nvim/bundle/dirdiff         
 M dotfiles/nvim/bundle/ultisnips               #       modified:  [6] dotfiles/nvim/bundle/editorconfig    
 M dotfiles/nvim/bundle/xml                     #       modified:  [7] dotfiles/nvim/bundle/javacomplete    
 M dotfiles/shell/aliases                       #       modified:  [8] dotfiles/nvim/bundle/matchit         
 M dotfiles/shell/functions                     #       modified:  [9] dotfiles/nvim/bundle/ultisnips       
 M dotfiles/shell/preEnv-darwin                 #       modified: [10] dotfiles/nvim/bundle/xml             
 M dotfiles/vim/bundle/MatchTagAlways           #       modified: [11] dotfiles/shell/aliases               
 M dotfiles/vim/bundle/angular                  #       modified: [12] dotfiles/shell/functions             
 M dotfiles/vim/bundle/camelcasemotion          #       modified: [13] dotfiles/shell/preEnv-darwin         
 M dotfiles/vim/bundle/dirdiff                  #       modified: [14] dotfiles/vim/bundle/MatchTagAlways   
 M dotfiles/vim/bundle/editorconfig             #       modified: [15] dotfiles/vim/bundle/angular          
 M dotfiles/vim/bundle/javacomplete             #       modified: [16] dotfiles/vim/bundle/camelcasemotion  
 M dotfiles/vim/bundle/matchit                  #       modified: [17] dotfiles/vim/bundle/dirdiff          
 M dotfiles/vim/bundle/xml                      #       modified: [18] dotfiles/vim/bundle/editorconfig     
 M dotfiles/vim/vimrc                           #       modified: [19] dotfiles/vim/bundle/javacomplete     
?? 1                                            #       modified: [20] dotfiles/vim/bundle/matchit          
?? 2                                            #       modified: [21] dotfiles/vim/bundle/xml              
?? dotfiles/ideavim                             #       modified: [22] dotfiles/vim/vimrc                   
?? dotfiles/pandoc/                             #                                                           
                                                โžค Untracked files                                           
                                                #                                                           
                                                #      untracked: [23] 1                                    
                                                #      untracked: [24] 2                                    
                                                #      untracked: [25] dotfiles/ideavim                     
                                                #      untracked: [26] dotfiles/pandoc                      
                                                #                                                           

doesn't work with git alias

Hey, thanks for this great project! ๐Ÿ˜„
I have a few git aliases defined and scmpuff doesn't work when I use them, e.g. a for add:

$ gs
# On branch: master  |  [*] => $e*
#
โžค Untracked files
#
#      untracked:  [1] my_file.txt
#

$ g a 1
fatal: pathspec '1' did not match any files

$ g add 1
# On branch: master  |  [*] => $e*
#
โžค Changes to be committed
#
#       new file:  [1] my_file.txt
#

What could be the problem?

Support exclusions in scmpuff_status

Hi, thanks for the wonderful tool! ๐Ÿค— It's been indispensable in my workflow for years now.

I recently wanted to exclude a directory from showing up in the scmpuff_status (aliased to gs) output, and I noticed that exclusion rules in the pathspec are not taken into account.

For example, the following works as expected with plain git:

git status ':(exclude,top)vendor/*'

Or:

git status -- ':!vendor'

This shows the status of all files, except ones in the vendor directory.

Yet this doesn't work with scmpuff:

gs ':(exclude,top)vendor/*'

Or:

gs -- ':!vendor'

This still shows the status of all files.

An obvious workaround is to do gs | grep -v 'vendor/', but this is inelegant, and shows wrong file numbers.

I'd be happy to contribute this change with a bit of guidance. ๐Ÿ™‚

I'm not sure if there are other pathspec features that should be supported besides exclusions ๐Ÿค”

Cheers!

[BUG] Failed to decode git status change code for chunk

I ran into a bug while running gs:

โฏ gs
2018/02/16 13:27:43
Failed to decode git status change code for chunk: [om/m3db/m3db/storage/block/result_test.goM  oss_repos/srcoss_repos/src/github.com/m3db/m3db/integration/server/serve.go]
Please file a bug including this error message as well as the output of:

git status --porcelain

You can file the bug at: https://github.com/mroth/scmpuff/issues/
Porcelain Output
M  oss_repos.yaml
M  oss_repos/src/github.com/m3db/m3db/.ci/auto-gen.sh
M  oss_repos/src/github.com/m3db/m3db/.ci/common.mk
M  oss_repos/src/github.com/m3db/m3db/.ci/metalint.sh
M  oss_repos/src/github.com/m3db/m3db/.version
M  oss_repos/src/github.com/m3db/m3db/Makefile
M  oss_repos/src/github.com/m3db/m3db/client/client.go
M  oss_repos/src/github.com/m3db/m3db/client/client_mock.go
M  oss_repos/src/github.com/m3db/m3db/client/fetch_attempt.go
M  oss_repos/src/github.com/m3db/m3db/client/host_queue.go
M  oss_repos/src/github.com/m3db/m3db/client/host_queue_test.go
M  oss_repos/src/github.com/m3db/m3db/client/options.go
M  oss_repos/src/github.com/m3db/m3db/client/reader_slice_of_slices_iterator.go
M  oss_repos/src/github.com/m3db/m3db/client/session.go
M  oss_repos/src/github.com/m3db/m3db/client/session_fetch_bulk_blocks_test.go
M  oss_repos/src/github.com/m3db/m3db/client/session_fetch_high_concurrency_test.go
M  oss_repos/src/github.com/m3db/m3db/client/session_fetch_metadata_test.go
M  oss_repos/src/github.com/m3db/m3db/client/session_fetch_test.go
M  oss_repos/src/github.com/m3db/m3db/client/session_test.go
M  oss_repos/src/github.com/m3db/m3db/client/session_topology_test.go
M  oss_repos/src/github.com/m3db/m3db/client/session_truncate_test.go
M  oss_repos/src/github.com/m3db/m3db/client/session_write_test.go
M  oss_repos/src/github.com/m3db/m3db/client/types.go
M  oss_repos/src/github.com/m3db/m3db/client/write.go
M  oss_repos/src/github.com/m3db/m3db/client/write_attempt.go
M  oss_repos/src/github.com/m3db/m3db/client/write_test.go
M  oss_repos/src/github.com/m3db/m3db/digest/digest.go
M  oss_repos/src/github.com/m3db/m3db/digest/digest_mock.go
M  oss_repos/src/github.com/m3db/m3db/docs/index.md
M  oss_repos/src/github.com/m3db/m3db/encoding/encoding_mock.go
M  oss_repos/src/github.com/m3db/m3db/encoding/iterator_test.go
M  oss_repos/src/github.com/m3db/m3db/encoding/m3tsz/encoder.go
M  oss_repos/src/github.com/m3db/m3db/encoding/multi_reader_iterator.go
M  oss_repos/src/github.com/m3db/m3db/encoding/null.go
M  oss_repos/src/github.com/m3db/m3db/encoding/options.go
M  oss_repos/src/github.com/m3db/m3db/encoding/series_iterator.go
M  oss_repos/src/github.com/m3db/m3db/encoding/series_iterator_pool.go
M  oss_repos/src/github.com/m3db/m3db/encoding/series_iterator_test.go
M  oss_repos/src/github.com/m3db/m3db/encoding/types.go
M  oss_repos/src/github.com/m3db/m3db/environment/config.go
M  oss_repos/src/github.com/m3db/m3db/generated/mocks/generate.go
D  oss_repos/src/github.com/m3db/m3db/generated/mocks/writer/writer_main.go
M  oss_repos/src/github.com/m3db/m3db/generated/thrift/rpc/GoUnusedProtection__.go
M  oss_repos/src/github.com/m3db/m3db/generated/thrift/rpc/rpc-consts.go
M  oss_repos/src/github.com/m3db/m3db/generated/thrift/rpc/rpc.go
M  oss_repos/src/github.com/m3db/m3db/glide.lock
M  oss_repos/src/github.com/m3db/m3db/glide.yaml
M  oss_repos/src/github.com/m3db/m3db/integration/admin_session_fetch_blocks_test.go
M  oss_repos/src/github.com/m3db/m3db/integration/client.go
M  oss_repos/src/github.com/m3db/m3db/integration/cluster_add_one_node_test.go
M  oss_repos/src/github.com/m3db/m3db/integration/commitlog_bootstrap_helpers.go
M  oss_repos/src/github.com/m3db/m3db/integration/config_test.go
M  oss_repos/src/github.com/m3db/m3db/integration/data.go
M  oss_repos/src/github.com/m3db/m3db/integration/disk_cleanup_helpers.go
M  oss_repos/src/github.com/m3db/m3db/integration/disk_flush_helpers.go
M  oss_repos/src/github.com/m3db/m3db/integration/generate/generate.go
M  oss_repos/src/github.com/m3db/m3db/integration/generate/types.go
M  oss_repos/src/github.com/m3db/m3db/integration/generate/writer.go
M  oss_repos/src/github.com/m3db/m3db/integration/mixed_mode_read_write_test.go
M  oss_repos/src/github.com/m3db/m3db/integration/options.go
M  oss_repos/src/github.com/m3db/m3db/integration/peers_bootstrap_high_concurrency_test.go
M  oss_repos/src/github.com/m3db/m3db/integration/peers_bootstrap_v2_high_concurrency_test.go
R  oss_repos/src/github.com/m3db/m3db/integration/server/serve.go -> oss_repos/src/github.com/m3db/m3db/integration/serve.go
M  oss_repos/src/github.com/m3db/m3db/integration/setup.go
M  oss_repos/src/github.com/m3db/m3db/integration/truncate_namespace_test.go
M  oss_repos/src/github.com/m3db/m3db/integration/write_quorum_test.go
M  oss_repos/src/github.com/m3db/m3db/integration/write_read_timezone_test.go
M  oss_repos/src/github.com/m3db/m3db/network/server/httpjson/cluster/server.go
M  oss_repos/src/github.com/m3db/m3db/network/server/httpjson/context.go
M  oss_repos/src/github.com/m3db/m3db/network/server/httpjson/node/server.go
M  oss_repos/src/github.com/m3db/m3db/network/server/tchannelthrift/cluster/server.go
M  oss_repos/src/github.com/m3db/m3db/network/server/tchannelthrift/cluster/service.go
M  oss_repos/src/github.com/m3db/m3db/network/server/tchannelthrift/context.go
M  oss_repos/src/github.com/m3db/m3db/network/server/tchannelthrift/convert/convert.go
M  oss_repos/src/github.com/m3db/m3db/network/server/tchannelthrift/node/server.go
M  oss_repos/src/github.com/m3db/m3db/network/server/tchannelthrift/node/service.go
M  oss_repos/src/github.com/m3db/m3db/network/server/tchannelthrift/node/service_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/clone/cloner.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/clone/cloner_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/commitlog/commit_log.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/commitlog/commit_log_mock.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/commitlog/commit_log_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/commitlog/read_write_prop_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/commitlog/reader.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/commitlog/types.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/files.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/files_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/fs_mock.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/index_lookup.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/index_lookup_prop_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/index_lookup_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/persist_manager.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/persist_manager_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/read.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/read_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/read_write_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/retriever.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/retriever_concurrent_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/retriever_options.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/seek.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/seek_manager.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/seek_test.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/types.go
M  oss_repos/src/github.com/m3db/m3db/persist/fs/write.go
M  oss_repos/src/github.com/m3db/m3db/persist/persist_mock.go
M  oss_repos/src/github.com/m3db/m3db/persist/types.go
M  oss_repos/src/github.com/m3db/m3db/retention/retention_mock.go
M  oss_repos/src/github.com/m3db/m3db/runtime/runtime_mock.go
M  oss_repos/src/github.com/m3db/m3db/services/m3dbnode/server/server.go
M  oss_repos/src/github.com/m3db/m3db/sharding/shardset.go
M  oss_repos/src/github.com/m3db/m3db/sharding/shardset_test.go
M  oss_repos/src/github.com/m3db/m3db/sharding/types.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/block.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/block_mock.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/block_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/merged_block_reader.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/metadata.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/options.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/result.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/result_pool_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/result_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/retriever_manager.go
M  oss_repos/src/github.com/m3db/m3db/storage/block/types.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/bootstrap_mock.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/bootstrapper/base_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/bootstrapper/commitlog/source.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/bootstrapper/commitlog/source_prop_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/bootstrapper/commitlog/source_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/bootstrapper/fs/source.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/bootstrapper/fs/source_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/bootstrapper/peers/source.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/bootstrapper/peers/source_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/result/result.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/result/result_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap/result/types.go
M  oss_repos/src/github.com/m3db/m3db/storage/bootstrap_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/database.go
M  oss_repos/src/github.com/m3db/m3db/storage/database_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/flush_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/config.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/config_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/convert.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/convert_prop_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/convert_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/map.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/map_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/metadata.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/metadata_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/namespace_mock.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace/types.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace_readers.go
M  oss_repos/src/github.com/m3db/m3db/storage/namespace_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/options.go
M  oss_repos/src/github.com/m3db/m3db/storage/repair.go
M  oss_repos/src/github.com/m3db/m3db/storage/repair/metadata.go
M  oss_repos/src/github.com/m3db/m3db/storage/repair/metadata_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/repair/types.go
M  oss_repos/src/github.com/m3db/m3db/storage/repair_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/buffer.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/buffer_mock.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/buffer_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/options.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/policy.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/reader.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/reader_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/series.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/series_all_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/series_mock.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/series_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/series/types.go
M  oss_repos/src/github.com/m3db/m3db/storage/shard.go
M  oss_repos/src/github.com/m3db/m3db/storage/shard_fetch_blocks_metadata_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/shard_insert_queue.go
M  oss_repos/src/github.com/m3db/m3db/storage/shard_insert_queue_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/shard_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/storage_mock.go
M  oss_repos/src/github.com/m3db/m3db/storage/tick.go
M  oss_repos/src/github.com/m3db/m3db/storage/tick_test.go
M  oss_repos/src/github.com/m3db/m3db/storage/types.go
M  oss_repos/src/github.com/m3db/m3db/tools/dtest/harness/harness.go
M  oss_repos/src/github.com/m3db/m3db/tools/dtest/util/seed/generator.go
M  oss_repos/src/github.com/m3db/m3db/tools/dtest/util/seed/generator_test.go
M  oss_repos/src/github.com/m3db/m3db/tools/dtest/util/seed/types.go
M  oss_repos/src/github.com/m3db/m3db/tools/read_ids/main/main.go
M  oss_repos/src/github.com/m3db/m3db/tools/read_index_ids/main/main.go
A  oss_repos/src/github.com/m3db/m3db/tools/util.go
M  oss_repos/src/github.com/m3db/m3db/tools/verify_commitlogs/main/main.go
A  oss_repos/src/github.com/m3db/m3db/tools/verify_index_files/README.md
A  oss_repos/src/github.com/m3db/m3db/tools/verify_index_files/main/main.go
M  oss_repos/src/github.com/m3db/m3db/topology/dynamic_test.go
M  oss_repos/src/github.com/m3db/m3db/topology/host_test.go
M  oss_repos/src/github.com/m3db/m3db/topology/map.go
M  oss_repos/src/github.com/m3db/m3db/topology/map_test.go
M  oss_repos/src/github.com/m3db/m3db/topology/topology_mock.go
M  oss_repos/src/github.com/m3db/m3db/topology/types.go
M  oss_repos/src/github.com/m3db/m3db/ts/types.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/.gitmodules
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/GUIDELINE.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/LICENSE.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/auto-gen.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/common.mk
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/convert-test-data.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/go-build-ldflags.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/gotestcover/LICENSE
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/gotestcover/Makefile
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/gotestcover/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/gotestcover/gotestcover.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/gotestcover/gotestcover_test.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/lint.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/metalint.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/proto-gen.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/test-cover.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/test-integration.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/test-one-integration.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/.ci/variables.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/uber-licence/.gitignore
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/uber-licence/.jshintrc
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/uber-licence/.travis.yml
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/uber-licence/CONTRIBUTION.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/uber-licence/LICENSE
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/uber-licence/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/uber-licence/license-fixer.js
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/uber-licence/package.json
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bitset/uber-licence/valid-licences.js
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/.gitmodules
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/GUIDELINE.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/LICENSE.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/auto-gen.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/common.mk
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/convert-test-data.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/go-build-ldflags.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/gotestcover/LICENSE
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/gotestcover/Makefile
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/gotestcover/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/gotestcover/gotestcover.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/gotestcover/gotestcover_test.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/lint.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/metalint.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/proto-gen.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/test-cover.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/test-integration.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/test-one-integration.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/.ci/variables.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/uber-licence/.gitignore
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/uber-licence/.jshintrc
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/uber-licence/.travis.yml
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/uber-licence/CONTRIBUTION.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/uber-licence/LICENSE
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/uber-licence/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/uber-licence/license-fixer.js
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/uber-licence/package.json
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/bloom/uber-licence/valid-licences.js
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/.gitmodules
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/GUIDELINE.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/LICENSE.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/auto-gen.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/common.mk
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/convert-test-data.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/go-build-ldflags.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/gotestcover/LICENSE
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/gotestcover/Makefile
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/gotestcover/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/gotestcover/gotestcover.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/gotestcover/gotestcover_test.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/lint.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/metalint.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/proto-gen.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/test-cover.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/test-integration.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/test-one-integration.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/.ci/variables.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/uber-licence/.gitignore
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/uber-licence/.jshintrc
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/uber-licence/.travis.yml
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/uber-licence/CONTRIBUTION.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/uber-licence/LICENSE
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/uber-licence/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/uber-licence/license-fixer.js
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/uber-licence/package.json
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3cluster/uber-licence/valid-licences.js
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/.gitmodules
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/GUIDELINE.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/LICENSE.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/auto-gen.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/common.mk
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/convert-test-data.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/gotestcover/LICENSE
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/gotestcover/Makefile
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/gotestcover/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/gotestcover/gotestcover.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/gotestcover/gotestcover_test.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/lint.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/metalint.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/proto-gen.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/test-cover.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/test-integration.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/test-one-integration.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/.ci/variables.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/uber-licence/.gitignore
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/uber-licence/.jshintrc
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/uber-licence/.travis.yml
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/uber-licence/CONTRIBUTION.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/uber-licence/LICENSE
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/uber-licence/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/uber-licence/license-fixer.js
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/uber-licence/package.json
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3em/uber-licence/valid-licences.js
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/.gitmodules
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/GUIDELINE.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/LICENSE.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/auto-gen.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/common.mk
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/convert-test-data.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/go-build-ldflags.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/gotestcover/LICENSE
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/gotestcover/Makefile
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/gotestcover/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/gotestcover/gotestcover.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/gotestcover/gotestcover_test.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/lint.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/metalint.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/proto-gen.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/test-cover.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/test-integration.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/test-one-integration.sh
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.ci/variables.sh
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.excludelint
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/.travis.yml
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/CONTRIBUTING.md
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/checked/debug.go
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/checked/debug_test.go
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/checked/ref.go
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/checked/ref_test.go
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/checked/types.go
R  oss_repos/src/github.com/m3db/m3db/context/cancel.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/context/cancel.go
R  oss_repos/src/github.com/m3db/m3db/context/cancel_test.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/context/cancel_test.go
R  oss_repos/src/github.com/m3db/m3db/context/context.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/context/context.go
R  oss_repos/src/github.com/m3db/m3db/context/context_test.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/context/context_test.go
R  oss_repos/src/github.com/m3db/m3db/context/pool.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/context/pool.go
R  oss_repos/src/github.com/m3db/m3db/context/types.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/context/types.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/generate.go
R  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/id/hash_bench_test.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/hash_bench_test.go
R  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/id/hash_test.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/hash_test.go
R  oss_repos/src/github.com/m3db/m3db/ts/id_matcher.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/id_matcher.go
R  oss_repos/src/github.com/m3db/m3db/ts/ts_mock.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/ident_mock.go
R  oss_repos/src/github.com/m3db/m3db/ts/identifier.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/identifier.go
R  oss_repos/src/github.com/m3db/m3db/ts/identifier_pool.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/identifier_pool.go
R  oss_repos/src/github.com/m3db/m3db/ts/identifier_test.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/identifier_test.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/iterator.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/iterator_test.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/tag.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/tag_iterator.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/tag_iterator_test.go
R  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/id/hash.go -> oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/tag_matcher.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/ident/types.go
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/instrument/types.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/resource/types.go
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/server/server_test.go
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/time/unit.go
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/time/unit_test.go
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/uber-licence/.gitignore
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/uber-licence/.jshintrc
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/uber-licence/.travis.yml
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/uber-licence/CONTRIBUTION.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/uber-licence/LICENSE
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/uber-licence/README.md
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/uber-licence/license-fixer.js
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/uber-licence/package.json
A  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/uber-licence/valid-licences.js
M  oss_repos/src/github.com/m3db/m3db/vendor/github.com/m3db/m3x/watch/source_test.go
M  oss_repos/src/github.com/m3db/m3db/x/m3em/node/node.go
R  oss_repos/src/github.com/m3db/m3db/x/counter/frequency_counter.go -> oss_repos/src/github.com/m3db/m3db/x/xcounter/frequency_counter.go
R  oss_repos/src/github.com/m3db/m3db/x/counter/frequency_counter_test.go -> oss_repos/src/github.com/m3db/m3db/x/xcounter/frequency_counter_test.go
R  oss_repos/src/github.com/m3db/m3db/x/counter/options.go -> oss_repos/src/github.com/m3db/m3db/x/xcounter/options.go
R  oss_repos/src/github.com/m3db/m3db/x/io/io_mock.go -> oss_repos/src/github.com/m3db/m3db/x/xio/io_mock.go
R  oss_repos/src/github.com/m3db/m3db/x/io/null.go -> oss_repos/src/github.com/m3db/m3db/x/xio/null.go
R  oss_repos/src/github.com/m3db/m3db/x/io/reader.go -> oss_repos/src/github.com/m3db/m3db/x/xio/reader.go
R  oss_repos/src/github.com/m3db/m3db/x/io/reader_slice_of_slices_from_segment_readers_iterator.go -> oss_repos/src/github.com/m3db/m3db/x/xio/reader_slice_of_slices_from_segment_readers_iterator.go
R  oss_repos/src/github.com/m3db/m3db/x/io/reader_slice_of_slices_from_segment_readers_iterator_test.go -> oss_repos/src/github.com/m3db/m3db/x/xio/reader_slice_of_slices_from_segment_readers_iterator_test.go
R  oss_repos/src/github.com/m3db/m3db/x/io/reader_test.go -> oss_repos/src/github.com/m3db/m3db/x/xio/reader_test.go
R  oss_repos/src/github.com/m3db/m3db/x/io/segment_reader_pool.go -> oss_repos/src/github.com/m3db/m3db/x/xio/segment_reader_pool.go
R  oss_repos/src/github.com/m3db/m3db/x/io/types.go -> oss_repos/src/github.com/m3db/m3db/x/xio/types.go

scmpuff version
โฏ brew info scmpuff
scmpuff: stable 0.2.1 (bottled)
Adds numbered shortcuts for common git commands
https://mroth.github.io/scmpuff/
/usr/local/Cellar/scmpuff/0.2.1 (6 files, 4.2MB) *
  Poured from bottle on 2017-03-29 at 17:31:40
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/scmpuff.rb

no such file or directory: ../../usr/local/bin/git

When in the directory /tmp/setup on the master branch:

$ git checkout testing-image
(eval):1: no such file or directory: ../../usr/local/bin/git
$ which -a git
git () {
	case $1 in
		(commit | blame | log | rebase | merge) eval "$(scmpuff expand -- "$SCMPUFF_GIT_CMD" "$@")" ;;
		(checkout | diff | rm | reset) eval "$(scmpuff expand --relative -- "$SCMPUFF_GIT_CMD" "$@")" ;;
		(add) eval "$(scmpuff expand -- "$SCMPUFF_GIT_CMD" "$@")"
			scmpuff_status ;;
		(*) "$SCMPUFF_GIT_CMD" "$@" ;;
	esac
}
/usr/local/bin/git
/usr/bin/git

This works without error:

/usr/local/bin/git checkout testing-image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.