# forge forge is a GUI front end for 'git' designed with the intent of simplifying federated git development. FORGE NEVER DOES ANYTHING BUT EXEC's 'git' ## Theory * Software engineering is the art of making things work. * Release engineering is the art of making things perfect. ## Rules 1) forge is only a GUI and wrapper around 'git' 2) forge _only_ os.Exec()'s git. Anything forge does can be done on the command line using 'git' directly 3) forge's default behavior is to use 3 branches: a) The git upstream master/main branch b) A "devel" branch that is published c) a "user" branch that can be local only to the developer ## Notes This can be used to maintain git repositories expiremental work on federated git * Scans directories looking for git repositories * The default behavior is to use 3 branches. 'master or main', 'devel', '' * shows tags and dirty state * uses a GUI or the console(console display needs work) * always wrap around 'git' -- it basically just types 'git' commands really fast ## Development Goals * have a GUI that also works on the command line ## Install: * go install go.wit.com/apps/forge@latest ## building from sources ``` # note as of Feb 2025. Forge has an option in forge to build itself. # The instructions below are out of date, but provide the general idea. # accurate instructions are in the forge code itself go install go.wit.com/apps/go-clone@latest # this tool makes it easier to 'git clone' repos and recursively 'git clone' the dependancies go install go.wit.com/apps/autogenpb@latest # this tool will generate the protobuf *pb.go files (also Marshal(), Sort(), etc.) go-clone go.wit.com/apps/forge # this will 'git clone' about 20 repos into ~/go/src (or where your go.work file is) cd go.wit.com/lib/protobuf/forgepb make # autogenpb will make .pb.go, marshal.pb.go and sort.pb.go files cd go.wit.com/lib/protobuf/gitpb make # autogenpb will make .pb.go, marshal.pb.go and sort.pb.go files cd go.wit.com/apps/forge make # this runs GO111MODULE=off go build insuring that your using only your git sources ``` ## Debian packages: Instructions are on https://mirrors.wit.com/ ## possible 'git bug' integration ideas: ``` git pull origin +refs/bugs/\*:refs/bugs/\* git pull origin +refs/identities/\*:refs/identities/\* # remove the caches rm -rf .git/git-bug # rebuild the cache with any command git bug user ```