Giter Site home page Giter Site logo

git-flux's Introduction

git-flux

git commands for fluent, collaborative workflow

prerequisites

this tool relies on bash/mingw32, so:

linux/mac users
just fire up the terminal. you're good to go.

windows people
open your git-bash 'as administrator', please.
(by the way, does it open up in U:\? this might help).

setup

install

curl -O https://raw.githubusercontent.com/eliranmal/git-flux/master/bin/setup.sh
chmod u+x setup.sh
./setup.sh

(windows users can skip the chmod bit).

update

after git-flux is installed, you can use the update subcommand to update git-flux with git-flux (mind = blown):

git flux update [<tag>]

use a tag if you want a specific version.

you can also use the setup script for that, but that's way less cool:

[env REPO_REF=<tag>] ./setup.sh update

uninstall

./setup.sh uninstall

usage

from the terminal, use the -h flag anywhere, or see the usage directory of this repository for the markdown-formatted help.

gotcha's

  • if you git rebase --onto (which you shouldn't), bad stuff will happen. why? because the branch base (for started features, createed teams, etc.) is saved to the git config, and not dynamically resolved via git.

contributing

thank you ❤️ read this.

git-flux's People

Contributors

eliranmal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

git-flux's Issues

[git-bash] pull failed

creation of new branches (e.g. git flux team create [name] fails when pulling from the base remote.

sync delegation

consider delegating sync operations all the way up the bases tree.
ask yourself if it's smart.

self-update

support update git-flux from within git-flux.

  • poc
  • implementation
    • add the update command
    • pass the repo path to the setup script to work from within the cloned repo
    • take care of proper versioning
  • documentation

Issue in git flux review (Git Bash)

While using Git Bash to run git flux review, getting error:

$ git flux team review cmfe

➤ type in your github user name: tomers

➤ type in your github password:

creating an access token on 'lpgithub.dev.lprnd.net'...
✔ created ok
creating pull-request from 'team/cmfe' to 'integration'...
sed: -e expression #1, char 2: invalid usage of line address 0
sed: -e expression #1, char 2: invalid usage of line address 0
✘ create failed: 'missing_field'

config should be context aware

  • preparations: integration/team branches should be stored in the config the same way as other branches, i.e. as a section, with a base property.
  • limit gitconfig context to repo level
  • create migration script (publish as gist)
  • bump minor/major version

override usage per action

user should get usage per action, e.g.:

  • explicit help flag:

    $ git flux feature start -h
    > usage: git flux feature start <name>
    > 
    > ... long usage ...
    
  • wrong usage:

    $ git flux hf start 1.1.1
    > usage: git flux hf start <name> <tag>
    

support dual-base feature branches

support syncing a feature branch with both a hotfix base and a team base, to ease up development when writing bug-fixes for hot-fix releases.

iterm2 fails on tput commands

errs with "unknown terminfo capability".. add defensive code to discard stderr and close with a no-op on tput error status.

organizational open-source

  • document it well (see this issue)
  • write unit tests
  • migrate repository to the public organization
  • search/replace any hard references to the repo url
  • update the docs on setup to use the enterprise form:
    curl -H 'Authorization: token [some_token_with_lots_of_characters]' \
       -H 'Accept: application/vnd.github.v3.raw' \
       -O -L https://lpgithub.dev.lprnd.net/raw/eliranm/git-flux/master/bin/setup.sh
  • write a blog post (contact vladi regarding the dev-blogs platform)

persist logs

redirect stdout/stderr to *.log to enable sending these logs for investigations of problems.
in debug mode, redirect to debug.log to not pollute the terminal out.

usage docs generator

create automated tool for generating readme (markdown) docs from terminal usage / bash api.
enhance text formatting module for that purpose.

'problems parsing json' on pull-request creation

when double quotes appear in the commit message, the review task fails with this error:

creating pull-request from 'feature/stuff' to 'team/stars'...
    ✘ create failed: 'Problems parsing JSON'

to solve it, we should escape the message before putting it in the json data before sending the PR request internally.

DRY up IO

generalize prompting in the terminal to encapsulate all that verbosity in git-flux-init

improve documentation

  • don't duplicate usage of commands in readme, just refer users to the -h flag. no, better yet, auto-generate README.md with a script (gen-doc.sh?)
  • write an overview of the git-flux model, specifically the levels.
  • elaborate on teams and the ability to switch teams with the join action
  • state the fact that git-flux addresses some of the issues in git-flow (e.g. we never use --no-ff, all merges are done with default strategy)

add 'search' sub-command

enable history grep with:

git flux search <term>

implementation will use git log -S<term> under the hood (reference).

document it as well.

remove branch with base fails to delete local when remote is already gone

Upon finish rc branch, in case the remote had already been deleted, git flux will fail deleting the remote and will not continue to delete the local branch

git flux rc finish 8.3.0.0

? local and remote branches will be deleted, forever! continue? (y/n) y

✘ branch 'rc/8.3.0.0' don't exist on the remote.

support epics

introduce 'epic' level, capable of aggregating teams or features.
this may be redundant, as these flows are covered by team join/feature start name base.

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.