{"thread":{"id":"24451","subject":"[PATCH] contrib: Add \"external blob storage\" clean and smudge filters","startedAt":"2010-07-21T01:07:31Z","lastAt":"2010-07-21T01:07:31Z","messageCount":1,"participants":["public_vi@tut.by"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"145922","messageId":"1279674451-13143-1-git-send-email-public_vi@tut.by","threadId":"24451","inReplyTo":null,"subject":"[PATCH] contrib: Add \"external blob storage\" clean and smudge filters","fromName":"","fromEmail":"public_vi@tut.by","sentAt":"2010-07-21T01:07:31Z","receivedAt":"2010-07-21T01:07:31Z","isPatch":true,"sender":{"key":"vi0oss@gmail.com","avatar":"https://avatars.githubusercontent.com/u/173219?v=4"},"body":"From: Vitaly _Vi Shukela <public_vi@tut.by>\n\nProof-of-concept \"external storage\" for big blobs using filters.\nThis is rather high-impact thing, expect a great slowdown or other\ninconsistencies\n\nFiles are uploaded on a server each time Git attempts to read them\nWhen checking out, files are downloaded from the server, so it should be\nmostly transparent for user (except of slowness)\nSHA-1 hashes are stored in Git instead of actual file content\n\nSigned-off-by: Vitaly _Vi Shukela <public_vi@tut.by>\n---\n contrib/filters/external_blob_storage.config |   11 +++++++++++\n 1 files changed, 11 insertions(+), 0 deletions(-)\n create mode 100644 contrib/filters/external_blob_storage.config\n\ndiff --git a/contrib/filters/external_blob_storage.config b/contrib/filters/external_blob_storage.config\nnew file mode 100644\nindex 0000000..054eb38\n--- /dev/null\n+++ b/contrib/filters/external_blob_storage.config\n@@ -0,0 +1,11 @@\n+# Proof-of-concept \"external storage\" for big blobs using filters.\n+# This is rather high-impact thing, expect a great slowdown or other inconsistencies\n+\n+# Put strings like \"*.avi filter=external_blob_storage\" to your .gitattributes or .git/info/attributes files,\n+# and that files will be uploaded on server (test@127.0.0.1) each time Git attempts to read them (git add, git diff, git status, ...)\n+# When checking out, files will be downloaded from server.\n+# SHA-1 hashes are stored in Git instead of actual file content\n+\n+[filter \"external_blob_storage\"]\n+\tclean = ssh test@127.0.0.1 'tee qqq | sha1sum | awk \\\"{print \\\\$1}\\\" | (read S && mv qqq \\\"$S\\\" && echo \\\"$S\\\" )'\n+\tsmudge = ssh test@127.0.0.1 'read S && cat \\\"$S\\\"'\n-- \n1.7.1\n"}]}