Go to file
2014-06-02 09:33:53 -06:00
bin add gopack 2014-06-02 09:33:51 -06:00
client smudge uses the gitmediaclient to download files if necessary 2014-06-02 09:33:53 -06:00
cmd there can be only one smudger 2014-06-02 09:33:53 -06:00
commands using http verbs for the client method names 2014-06-02 09:33:53 -06:00
filters smudge uses the gitmediaclient to download files if necessary 2014-06-02 09:33:53 -06:00
queuedir add Queue.Walk() 2014-06-02 09:33:52 -06:00
script start on a basic queuedir package 2014-06-02 09:33:52 -06:00
server return early if the file exists 2014-06-02 09:33:52 -06:00
.gitignore add a basic server for syncing 2014-06-02 09:33:51 -06:00
gitmedia.go doh, filepath.Ext(".git") always == ".git" 2014-06-02 09:33:53 -06:00
gopack.config add assert 2014-06-02 09:33:52 -06:00
metaencoding_test.go metaencoding tests 2014-06-02 09:33:51 -06:00
metaencoding.go clean large assets with header 2014-06-02 09:33:52 -06:00
queues.go walk the queue 2014-06-02 09:33:53 -06:00
README.md rip off internal prototype's README 2014-06-02 09:33:03 -06:00

GitHub Asset Management System

Large file asset management system for GitHub.

CLI

git-media setup

  • setup the git-media files

git-media clean

  • SHA file, see if it has changed, save to file if so, output SHA and instructions

git-media smudge

  • copy file from media center if SHA exists, (otherwise error / queue up download?)

git-media track *.jpg

  • add file path or glob to .gitassets (and .gitattributes) and initial 'git add'

git-media sync

  • initialize with defaults if it doesn't exist
  • finds untracked large files or large files in the index
    • adds entry to .gitassets
    • adds filter to .gitattributes
    • remove from the db after (?)
  • scans for changed assets and sends/checks for lock on server
  • downloads assets you don't have yet, but need for your current checkout
    • re-smudge file if it was smudged without content
  • uploads assets you haven't uploaded yet but have committed

git-media status

  • lists all asset files in HEAD and upload/download/lock status
    • estimated file transfer size for next 'sync' command
    • only list files with interesting statuses unless --full specified

git-media view [file]

  • shows version history and comments for a file

pre-commit hook that checks for large files, exits non-0 if any are too large warn if something is committed/pushed and not uploaded

  • or post-commit to run git-media sync (auto-sync setting)

.gitassets

  • project id
  • large file size min limit
  • file type filter
  • list of assets and SHAs

git-media convert

  • take an existing git repo and filter-branch the large files out

SERVER

  • accept/send file contents
    • project id, path
    • full or binary diff (with base SHA)
  • show list of assets in a project
  • asset:
    • version history
    • visual diff if possible (cc render team)
    • locks
    • download
    • revert in project (?)
      • or create a new branch with this version
    • share (?)
      • send to campfire
      • email to someone
  • keep / check for locks