submit-patchset

command module
v0.25.19 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 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'.

Options:

--debugger             open the debugger window
--logger               open the log.* control window
--gui GUI              select the plugin (andlabs,gocui,etc)
--gui-verbose          enable all logging
--bash                 generate bash completion
--bash                 generate bash completion
--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
--help, -h             display this help and exit
--version              display version and exit

Commands:

help                   New to forge? This is for you.'
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
dirty                  show dirty git repos
fetch                  run 'git fetch master'
gui                    open the gui
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'
tag                    manage git tags

Jump to

Keyboard shortcuts

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