Jump to content

  • Log In with Google      Sign In   
  • Create Account

#Actualsamoth

Posted 25 January 2013 - 09:10 AM

If I wanted to manually modify the up-to-date repository without invoking any version control tool or command, which ones permit me to do so?


In Subversion this is probably possible, though not easy and not advisable. You would have to edit Sqlite (presumably using a Sqlite editor), and DELTA files in a hex editor or a specially written tool. Older revisions used Berkeley DB once upon a time, so it was never easy. Hand editing is not something that was intended in the design, ever.

Git explicitly tries to prevent editing by only referencing everything (files, folders, revisions) by their SHA-1 value. Presumably this is "secure" as long as you don't have a preimage attack on SHA-1 that runs in minutes/seconds. It is necessary in the case of a distributed system, too, because otherwise you have hardly any way of telling what's authentic and what was changed and tampered with.

(Note that pre-imaging SHA-1 is not alltogether unlikely to happen. The best known attack so far has 2^61 complexity, that's about 7200 CPU-years on an average dektop computer. Now taking multi-core and so into account, if you can get a cluster of a thousand or so machines together, it's almost feasible...)

#2samoth

Posted 25 January 2013 - 08:55 AM

If I wanted to manually modify the up-to-date repository without invoking any version control tool or command, which ones permit me to do so?



In Subversion this is probably possible, though not easy and not advisable. You would have to edit Sqlite (presumably using a Sqlite editor), and DELTA files in a hex editor or a specially written tool. Older revisions used Berkeley DB once upon a time, so it was never easy. Hand editing is not something that was intended in the design, ever.

Git explicitly tries to prevent editing by only referencing everything (files, folders, revisions) by their SHA-1 value. Presumably this is "secure" as long as you don't have a preimage attack on SHA-1 that runs in minutes/seconds. It is necessary in the case of a distributed system, too, because otherwise you have hardly any way of telling what's authentic and what was changed and tampered with.

#1samoth

Posted 25 January 2013 - 08:54 AM

If I wanted to manually modify the up-to-date repository without invoking any version control tool or command, which ones permit me to do so?

 

 

In Subversion this is probably possible, though not easy and not advisable. You would have to edit Sqlite (presumably using a Sqlite editor), and DELTA files in a hex editor or a specially written tool. Older revisions used Berkeley DB once upon a time, so it was never easy. Hand editing is not something that was intended in the design, ever.

 

Git explicitly tries to prevent that by only referencing everything (files, folders, revisions) by their SHA-1 value. Presumably this is "secure" as long as you don't have a preimage attack on SHA-1 that runs in minutes/seconds. It is necessary in the case of a distributed system, too, because otherwise you have hardly any way of telling what's authentic and what was changed and tampered with.


PARTNERS