Skip to content

A reproducible way to build a git repo representing historical bass development.

License

Notifications You must be signed in to change notification settings

bass-assembler/bass-history-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bass history kit

bass is Near's cross-assembler, which he used for making SNES homebrew and ROM hacks, among other things. While official development is now done in git, that repository only goes back to v14, so exploring the development history before that point requires a separate solution.

This repository contains the surviving release archives and changelogs, scripts to analyse and clean up those sources, and a script to export them in the format accepted by the git fast-import command, to turn them into a consistently-formatted Git repository.

Results

If you can't use this kit yourself, or if you'd rather not, an example history repository is available at https://github.com/bass-assembler/bass-history/

Note that the pre-built repository may have been built by an older version of the kit, and so may not be as accurate as it could be.

Ingredients

To build a bass-history repository, you will need:

  • a POSIX operating system
  • The 7z archive tool
  • Python 3.x (tested with 3.8, older versions may work)
  • The content of this repository

Optional ingredients

These extra ingredients may improve your experience:

  • redo will let you incrementally rebuild the analysis of the sources, if you want to tinker with the import process yourself, instead of always redoing all the analysis from scratch every time.

Building

How to build your own bass-history repository:

  1. Check out this repository somewhere:

    $ git clone https://github.com/bass-assembler/bass-history-kit.git
    $ cd bass-history-kit
    
  2. Run the preparation script, to analyse and collate the sources:

    $ ./do prepare
    

    (if you have redo installed, you may redo prepare, or even redo -j10 prepare if you have a lot of CPUs and want to save some time)

  3. Make a new Git repository to receive the bass history:

    $ cd ..
    $ git init bass-history
    $ cd bass-history
    
  4. Export the bass historical data into git:

    $ ../bass-history-kit/history-fast-export | git fast-import
    
  5. Because git fast-import stores data uncompressed for speed, and because it only updates the Git object store, not the working directory, do some house-keeping:

    $ git gc --aggressive
    $ git reset --hard HEAD
    
  6. Enjoy your new bass history Git repository!

Grafting

It is possible to graft together the bass-history repository with the ARM9 current-development repository to produce a unified history of bass development, using the git replace tool.

Follow the regular building steps above to create a bass-history repository. Then:

  1. Check out the ARM9 bass repo (if you don't already have a copy):

    $ cd ..
    $ git clone https://github.com/ARM9/bass.git 
    $ cd bass
    
  2. Fetch the v14 tag from the bass-history repo, which automatically fetches all the history leading up to that point:

    $ git fetch ../bass-history v14
    
  3. Tell git to add the fetched commit as the parent of the oldest commit in ARM9's repository:

    $ git replace --graft 6da8424 FETCH_HEAD
    

Now commands like git log should show you the complete bass development history from the oldest surviving changes up until the present day!

Citations

See the READMEs in each subdirectory of sources for provenance information.

About

A reproducible way to build a git repo representing historical bass development.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published