submit-patchset

command module
v0.25.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2025 License: GPL-3.0 Imports: 20 Imported by: 0

README

forge

forge is a GUI front end for 'git' designed with the intent of simplifying federated git development.

Install:

  • go install go.wit.com/apps/forge@latest

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

Development Goals

  • have a GUI that also works on the command line

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

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

Documentation

Overview

forge -- a tool to manage lots of git repos. forge includes a GUI and TUI.

forge only executes the 'git' command. Everything it does, you can run by hand with 'git'.

forge v0.22.138-6-gaea7f16 Built on 2025.09.03_1935 Usage: forge [--debugger] [--logger] [--no-gui] [--gui GUI] [--gui-file GUI-FILE] [--gui-build] [--gui-verbose] [--gui-check-plugin GUI-CHECK-PLUGIN] [--connect CONNECT] [--all] [--build BUILD] [--install INSTALL] [--forge-rebuild] [--force] [--verbose] [--bash] [--auto-complete AUTO-COMPLETE] <command> [<args>]

Options:

--debugger             open the debugger window
--logger               open the log.* control window
--no-gui               ignore all these gui problems
--gui GUI              Use this gui toolkit [andlabs,gocui,nocui,stdin]
--gui-file GUI-FILE    Use a specific plugin.so file
--gui-build            attempt to build the GUI plugins
--gui-verbose          enable all logging
--gui-check-plugin GUI-CHECK-PLUGIN
                       hack to verify GO plugins load
--connect CONNECT      forge url
--all                  git commit --all
--build BUILD          build a repo
--install INSTALL      install a repo
--forge-rebuild        download and rebuild forge
--force                try to strong arm things
--verbose              show more output
--bash                 generate bash completion
--auto-complete AUTO-COMPLETE
                       todo: move this to go-arg
--help, -h             display this help and exit
--version              display version and exit

Commands:

checkout               switch branches using 'git checkout'
clean                  start over at the beginning
commit                 'git commit' but errors out if on wrong branch
config                 show your .config/forge/ settings
debug                  debug forge
dirty                  show dirty git repos
fetch                  run 'git fetch master'
list                   print a table of the current repos
merge                  merge branches
normal                 set every repo to the default state for software development
patch                  make patchsets
pull                   run 'git pull'

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL