Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use .jar tool BFG Repo Cleaner and reduce git repository?

I have a question that I am sure is very simple but which I can't find the answer for. I am an animator working on the Unreal Engine 4 and using Source Control, Bitbucket and Source Tree to collaborate on a current project. My coding expertise draws the line at php and terminal scares me to no end. I've done plenty of research on reducing git repository sizes with mild success.

The Case: I've run out of space on my Repository (probably because UE4 saves a million auto save files every time I use it) and need to delete some files.

What I've found:

Evidently, files on a git repository are not meant to be deleted with ease (For safety perhaps). There doesn't appear to be a way to just go to the repository highlight some stuff and hit delete. Thus far, however, I've found two promising leads right here in StackOverflow.

  1. This awesome little bit of code from Sam Watkins which gave me some good results: http://sam.nipl.net/b/git-gc-all-ferocious
  2. Many people suggesting a tool called the BFG Repo Cleaner.

What I'd like to know:

  1. From what I've read, BFG seems to be the fastest and most efficient solution to repository reduction out there. Is this an accurate assessment?

  2. There are many resources online on how to use the tool, (such as this one) but none that answer my (very basic, I imagine) question. After I download it, what do I do with the file? Do I just double click it? Does the .jar file need to be in a specific place? Must I run it and then follow the instructions?

What I've tried:

  1. I double clicked it and it seems to have run but it had no effect.

  2. I tried running the code snippets from several walkthrough articles (including the one I've linked to above) through terminal using source tree's terminal button and replacing all the placeholder urls with mine on the copied code, but any snippet that contains the words bfg.jar fails. All the code I've found online for the tool returns a "command not found" message in terminal, which is not surprising since the tool is just sitting in my downloads folder.

  3. I've looked at "working with .jar files" articles but all I could find seems to be more interested in coding such files than running them, and so, I am at a loss.

Thank you in advance for any and all help.

Cheers, Omar

like image 366
user3389654 Avatar asked May 05 '16 11:05

user3389654


2 Answers

Things that help when you are new to the terminal, that you will almost never find, in instructions for programs that run in a terminal:

  • You need to specify the exact name of the file to run. In my case, the latest version was bfg-1.12.15.jar. Either you rename the file to bfg.jar (but you might not want to if later you want to know the version you have), or you type it in just like that.
  • You need to specify the exact path to the file to run. In my case, it was in the home folder of my Ubuntu system, which is the root folder, and is denoted with a tilde ~. So, I put the command like this: java -jar ~/bfg-1.12.15.jar. You can specify any path by starting from the root folder and indicating folders nested within it with a forward slash, like ~/Music/Funk/James_Brown/get-on-up.mp3, for instance. The program will run from anywhere if the OS knows where to find it.
  • You need to be in the directory where you want the program to do its work, and run it from there. To change directories (also known as folders), the command is cd, then you specify the path as shown above.
  • To get help when you are stuck, you need to look for articles on how to use a terminal, or how to use bash. That tells you the general introductory stuff you need.
like image 134
kim holder wants Monica back Avatar answered Oct 10 '22 02:10

kim holder wants Monica back


Go to the directory where this bfg.jar (name will be different for newer version) is copied and run the command below:

java -jar bfg-1.13.0.jar --strip-blobs-bigger-than 50M <Cloned GitRepo Path>

like image 37
Amarish Avatar answered Oct 10 '22 02:10

Amarish