git
is a Distributed Concurrent Versions Systemgit
hostBetteridge's law of headlines is an adage that states:
Any headline that ends in a question mark can be answered by the word no.
Here the answer is YES!
__ _______ ____ _
\ \ / / ____/ ___|| |
\ V /| _| \___ \| |
| | | |___ ___) |_|
|_| |_____|____/(_)
$$$$ -> #[email protected]*!
$$
If you're not paying for it, you're the product being sold.
$$: Pay for private repositories
From their website (in that order):
Most GitHub™ features put data in their own internal closed representation:
Note there are tools to export them. Ex: migrate to Gitlab
Were you already forced to:
REAL STORY @WORK: github dashboard is slow & terrible for the manager.
Gitlab is a better alternative but:
git clone
code
web pages
issues
reviews
comments
wiki/doc
hooks
gpm
Tool freedom
gpm
gpm
in a few hours.gpm
followsgpm
conventionsgit
as DCSVgpm
gpm
conventionsorg-mode
format but you can changeissues.org
filereviews/
with name <branch>-<reviewer>.org
wiki.org
battery included:
git
hooksgit instaweb
git daemon
org-annotate-file
mkdir -p /tmp/gpm-playground/testprj
cd /tmp/gpm-playground/testprj
echo "Hello GPM" > README
git init .
git add README
git commit -m "Initial commit"
gpm init
(1)gpm init
GPM -- Git Project Manager
==========================
Create a new branch gpm (be sure the branch gpm doesn't already exists)
git checkout --orphan gpm
Switched to a new branch 'gpm'
cleanup the branch
git rm --cached -r .
git clean -fd
gpm init
(2)* issue.org
git add issues.org
git add templat
* wiki.org
git add wiki.or
* reviews.org
create some example review for inspiration
reviews/write-contributing-yogsototh.org
git add reviews
create some review templates
templates/new-review.org
git add templates
gpm init
(3)* hooks/
Copyings default hooks into the hooks directory
git add hoo
* server init
create dir: /Users/yaesposi/.local/share/gpm/public
git init .
git rev-parse --show-toplevel
git rev-parse --show-toplevel
git clone --mirror /tmp/gpm-playground/testprj
~/.local/share/gpm/public/testprj.git
Cloning into bare repository '.../testprj.git'...
done.
git update-server-info
git commit -m 'gpm initialized'
git checkout master
Switched to branch 'master'
gpm
branch> git checktout gpm
> tree
.
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ └── ...
├── issues.org
├── reviews
│ └── write-contributing-yogsototh.org
├── templates
│ ├── new-issue.org
│ └── new-review.org
└── wiki.org
3 directories, 16 files
> gpm hooks
Usage: gpm hooks sync
Handle hooks for this git repository
Available options:
-h,--help Show this help text
Available commands:
sync Synchronize hooks from gpm branch
issues.org
Basic#+TODO: TODO(t) STARTED(s) WAITING(w) | DONE(d) CANCELLED(c)
* Basic Usages
** TODO Do thing 3
** STARTED Do thing 2
** DONE Do thing 1
issues.org
Complex workflow, review #+PROPERTY: ASSIGNEE
#+PROPERTY: REVIEWER
#+TODO: REVIEW(i) | MERGED(m)
#+TODO: ACCEPTED(a) CHANGE_REQUESTED(c) QUESTION(q) FEEDBACK(f) | REFUSED(r)
** REVIEW Basic review process
:PROPERTIES:
:BRANCH: explain-review-process
:ASSIGNEE: yogsototh
:END:
*** ACCEPTED Review finished
:PROPERTIES:
:REVIEWER: shubby
:END:
issues.org
Full Professional Usage#+TAGS: epic(e) user_story(u) task(t) qa(q) ops(o)
* Some Title :epic:
** Some User Story :story:
*** Dev Task :task:dev:
*** Document Task :task:doc:
*** QA Task :task:qa:
*** Ops Task :task:ops:
gpm new-issue
> gpm new-issue -i
gpm serve
git instaweb
(port 1234)git daemon
(port 9418)Usage: gpm serve (start | stop | update | path)
Serve the git to the web
Available options:
-h,--help Show this help text
Available commands:
start Start to serve all gpm tracked repositories
stop Stop to serve all gpm tracked repositories
update Update the served git repository
path Show the path of the bare repository
gpm review
: classical workflowgpm
branch and gpm retrieve
the reviewsgpm review
: reviewer (step 2 of previous slide)org-annotate-file
FTW!gpm update
to serve the updated gpm
branchgpm
is a proof of concept but so simple its already usableMainly you OWN & CONTROL your identity and the informations about it.
Follow: