kost / dvcs-ripper

Rip web accessible (distributed) version control systems: SVN/GIT/HG...
GNU General Public License v2.0
1.66k stars 309 forks source link

todo: Support for brute forcing pack names #12

Closed trin4ik closed 8 years ago

trin4ik commented 8 years ago

ORLY? This is possible for git?

kost commented 8 years ago

Hello!

Yes, it is possible. But it would be too slow to guess it by just brute force.

Actually there are two ways: 1) Guess the name intelligently: git pack name is a hash of the sorted object names to make the resulting filename based on the pack content. That means that if there's not too much missing objects, we can try combination of each MISSING objects (sorted) and guess the name of the packed content. This method will not work if there's too much dependencies between MISSING objects.

2)Really brute force all combinations. This will take longer, but success rate would be 100%.

Take a look at this issue for longer explanation: https://github.com/kost/dvcs-ripper/issues/6

I was working on this and have something on my local machine, but did not push it to the repo yet.

trin4ik commented 8 years ago

We can get a list of all objects + to understand what we are lacking. The only problem is that we do not know how often the collected packs. Faced with this problem, the solution is not found, brute did not help me. Perhaps you will, report)

kost commented 8 years ago

Hello! You can take a look at two new methods: