FYI: my git workflow

79 views
Skip to first unread message

Edward K. Ream

unread,
Jun 20, 2015, 7:21:54 AM6/20/15
to leo-e...@googlegroups.com
Imo, git rivals python as the greatest productivity tool ever devised for programmers.

Recently I ditched SourceTree on Windows in favor of command-line tools. As a result, my workflow on Ubuntu and Windows is essentially identical.

Simple aliases (Ubuntu) and .bat files (Windows) support the following console commands:

gs  (expands to git status)
gd (git diff)  Uses an external diff program, but I'm starting to prefer text diffs.
ga . (git add .)
ga file (git add file)
gc (git commit: configured to open Scite to create a commit message)
gc -m "a one-line commit message"
push (git push)

I use gitk on both platforms to review commits.

And that's about it. I use "git help" and "git help command" as needed.

Edward

P. S. I regret not ditching SourceTree earlier.  It has two major problems:

1. The text sizes are too small, and not configurable.

2. (The big one).  It can take 30 or more seconds to handle large diffs.  Yes, the diffs allow you to cherry pick individual changed chunks, but the performance bugs make this feature almost worthless.

EKR

Edward K. Ream

unread,
Jun 22, 2015, 2:39:19 PM6/22/15
to leo-e...@googlegroups.com, edre...@gmail.com
On Saturday, June 20, 2015 at 6:21:54 AM UTC-5, Edward K. Ream wrote:

> Yes, the [SourceTree] diffs allow you to cherry pick individual changed chunks.

Googling "git select chunks" yields this page, describing git add -p.

Not as easy as the SourceTree diff view, but much faster.

EKR

Offray Vladimir Luna Cárdenas

unread,
Jun 23, 2015, 2:28:08 PM6/23/15
to leo-e...@googlegroups.com
Hi,

Thanks Edward as always for the food for thought.

On 20/06/15 06:21, Edward K. Ream wrote:
> Imo, git rivals python as the greatest productivity tool ever devised
> for programmers.
>

For my these two tools has become fossil-scm[1] and Pharo
environment[2], respectively. They're really empowering, but out of the
radar for most of developers and people. I use Fossil for source code
management in the file system world and Pharo almost for everything
else: writing, prototyping, programming, visualization. I was even able
to prototype my own Leo/IPython alike conciliation, something that has
the tree-like writing experience of Leo and the interactivity of
IPython. Of course both of them, Leo and IPython, have properties not
found in my early prototype and maybe it will be like this always,
because is about creating variation, not repetition. Leo and IPython
will be in my toolbox for long time hopefully.

[1] http://fossil-scm.org/
[2] http://pharo.org/

My workflow is pretty simple, mostly in solo projects (in collaborative
ones I change init by clone):

- fossil init <repo-name.fossil> creates repository.
- fossil add/rm <file-name> adds/removes files.
- fossil commit -m "<message>" commits.

No forking, pushing, pulling, etc. I explore the repo with the included,
minimalist web server adding the processing power of the visual cortex,
instead of trying to make sense of fonts in terminal emulation output
:-). Fossil stays out of my way and let me do the work without the
cognitive overhead of most DVCS/SCM. Pharo environment is (like fossil)
self-contained: programming, visualization, package installation, source
code management, GUI, unitary test, all happen there, fluidly. I'm now
creating a bridge between fossil and pharo for making a smoother
integration for my workflow.

Some time ago I wrote several post about how Leo add self-refentiality
to the file system world: A leo tree is a file that can talk about,
deconstruct, reconstruct almost any other files in the file system: a
meta-description and in that sense reminded me of Smalltalk[*]
self-referential discourse about computing, but for files instead of
objects. Now I'm trying some cross-pollination of some ideas learned in
the Leo/IPython world to the Smalltalk one. Sharing our tools and
workflows helps with that crosspollination and explorations.

Cheers,

Offray

[*] I read in the leo website
http://leoeditor.com/appendices.html?highlight=smalltalk#why-i-like-python
a comparison of Python versus others C++, objective-C and Smalltalk, but
the rest of the comparison is only against C++ and says that

"Other interpretive environments such as icon and Smalltalk have
clarity, power and safety similar to Python. What makes Python unique is
its seamless way of making C code look like Python code. Python executes
at essentially the speed of C code because most Python modules are
written in C."

This speed added value is almost negligible for me compared to the
possibility of expressing my thoughts in the environment and in that
sense, Pharo Smalltalk shares for me the same conclusion of the page for
python: "[Pharo] allows me to express my intentions clearly and at the
highest possible level".
Reply all
Reply to author
Forward
0 new messages