Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • G gitlabhq1
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 21
    • Issues 21
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • gpt
  • large_projects
  • gitlabhq1
  • Issues
  • #13

Closed
Open
Created Oct 15, 2011 by Administrator@rootOwner

Support git annex

Created by: fire

User Story

As an artist, I ruined my feline 3d model texture. I want to go back to the version of my texture 25 days ago. Git is hard and I depend on an auto-commit to git tool from the company. I need to easily grab my old version from a website without my brain hurting.

As a developer, I need to test my game installer released 45 days ago. I want to browse the releases folder and select the executable from a website. Then I download the executable.

As a developer, I want to add another Amazon S3 remote remotely. I need to set my public key and the S3 api key.

As a developer, I want an archive of the entire repo. I buy a 3 terabyte hard drive and send it to my server host. They load the entire repository onto the hard drive and mail it back to me.

As a game developer on a project, I want to store 50 revisions of a 50 mb texture file or 500 5mb assets. With normal git it needs to be sha1 hashed (from the slow disk) and diff compressed. That's 2500mb.

As a game developer, I want to store a copy of every dvd release, every public release of the game software. 2 dvds is near 9GB.

What is Git Annex?

git-annex allows managing files with git, without checking the file contents into git. annex stores the raw files in a more scalable backend. For example: Amazon S3 or the file system if the server is local.

git annex can require 3 copies of the file to exist in distributed repos or fsck your current local repo against the other repos.

At the same time you can use regular git.

Design Browsing Interface

Show tree and file contents.

Package a set of repository files into an archive file. The trivial case is one file.

  1. Gather all the files from all repos
  2. Compress
  3. Distribute

Design Admininstration Interface

Link public keys.

Add remotes. Add a github remote where you push certain sections of your repository.

Define number of backups for the entire repository and particular folders.

Run fsck.

Steps

  1. Install a package of git annex.
  2. git annex init
  3. Manage users. (This is blocked on #15 Upgrade to Gitolite)
  4. Create browsing interface.
  5. Create administrative interface.
  6. Create a How do I use git annex? guide.

Bonus

Actually create the auto-commit git client. Look into SparkleShare for a dropbox clone and ShareBox FS for FUSE client.

Assignee
Assign to
Time tracking