diff --git a/examples/traverse-ipld-graphs/git-objects/0f328c91df28c5c01b9e9f9f7e663191fa156593 b/examples/traverse-ipld-graphs/git-objects/0f328c91df28c5c01b9e9f9f7e663191fa156593 new file mode 100644 index 0000000000..4fc8373bcd Binary files /dev/null and b/examples/traverse-ipld-graphs/git-objects/0f328c91df28c5c01b9e9f9f7e663191fa156593 differ diff --git a/examples/traverse-ipld-graphs/git-objects/177bf18bc707d82b21cdefd0b43b38fc8c5c13fe b/examples/traverse-ipld-graphs/git-objects/177bf18bc707d82b21cdefd0b43b38fc8c5c13fe new file mode 100644 index 0000000000..b762482e17 Binary files /dev/null and b/examples/traverse-ipld-graphs/git-objects/177bf18bc707d82b21cdefd0b43b38fc8c5c13fe differ diff --git a/examples/traverse-ipld-graphs/git-objects/23cc25f631cb076d5de5036c87678ea713cbaa6a b/examples/traverse-ipld-graphs/git-objects/23cc25f631cb076d5de5036c87678ea713cbaa6a new file mode 100644 index 0000000000..d50e6d186b Binary files /dev/null and b/examples/traverse-ipld-graphs/git-objects/23cc25f631cb076d5de5036c87678ea713cbaa6a differ diff --git a/examples/traverse-ipld-graphs/git-objects/4e425dba7745a781f0712c9a01455899e8c0c249 b/examples/traverse-ipld-graphs/git-objects/4e425dba7745a781f0712c9a01455899e8c0c249 new file mode 100644 index 0000000000..f6de31c9fc Binary files /dev/null and b/examples/traverse-ipld-graphs/git-objects/4e425dba7745a781f0712c9a01455899e8c0c249 differ diff --git a/examples/traverse-ipld-graphs/git-objects/6850c7be7136e6be00976ddbae80671b945c3e9d b/examples/traverse-ipld-graphs/git-objects/6850c7be7136e6be00976ddbae80671b945c3e9d new file mode 100644 index 0000000000..a3d3a1ea47 Binary files /dev/null and b/examples/traverse-ipld-graphs/git-objects/6850c7be7136e6be00976ddbae80671b945c3e9d differ diff --git a/examples/traverse-ipld-graphs/git-objects/a5095353cd62a178663dd26efc2d61f4f61bccbe b/examples/traverse-ipld-graphs/git-objects/a5095353cd62a178663dd26efc2d61f4f61bccbe new file mode 100644 index 0000000000..fc7fdf00b4 Binary files /dev/null and b/examples/traverse-ipld-graphs/git-objects/a5095353cd62a178663dd26efc2d61f4f61bccbe differ diff --git a/examples/traverse-ipld-graphs/git-objects/dc9bd15e8b81b6565d3736f9c308bd1bba60f33a b/examples/traverse-ipld-graphs/git-objects/dc9bd15e8b81b6565d3736f9c308bd1bba60f33a new file mode 100644 index 0000000000..cc80065138 Binary files /dev/null and b/examples/traverse-ipld-graphs/git-objects/dc9bd15e8b81b6565d3736f9c308bd1bba60f33a differ diff --git a/examples/traverse-ipld-graphs/git-objects/e68e6f6e31857877a79fd6b3956898436bb5a76f b/examples/traverse-ipld-graphs/git-objects/e68e6f6e31857877a79fd6b3956898436bb5a76f new file mode 100644 index 0000000000..7d01083849 Binary files /dev/null and b/examples/traverse-ipld-graphs/git-objects/e68e6f6e31857877a79fd6b3956898436bb5a76f differ diff --git a/examples/traverse-ipld-graphs/git-objects/ee62b3d206cb23f939208898f32d8708c0e3fa3c b/examples/traverse-ipld-graphs/git-objects/ee62b3d206cb23f939208898f32d8708c0e3fa3c new file mode 100644 index 0000000000..78a038b49b Binary files /dev/null and b/examples/traverse-ipld-graphs/git-objects/ee62b3d206cb23f939208898f32d8708c0e3fa3c differ diff --git a/examples/traverse-ipld-graphs/git-objects/ee71cef5001b84b0314438f76cf0acd338a2fd21 b/examples/traverse-ipld-graphs/git-objects/ee71cef5001b84b0314438f76cf0acd338a2fd21 new file mode 100644 index 0000000000..27296bc7a7 Binary files /dev/null and b/examples/traverse-ipld-graphs/git-objects/ee71cef5001b84b0314438f76cf0acd338a2fd21 differ diff --git a/examples/traverse-ipld-graphs/git.js b/examples/traverse-ipld-graphs/git.js new file mode 100644 index 0000000000..ce40aa35d6 --- /dev/null +++ b/examples/traverse-ipld-graphs/git.js @@ -0,0 +1,74 @@ +'use strict' + +const createNode = require('./create-node.js') +const asyncEach = require('async/each') +const path = require('path') +const multihashing = require('multihashing-async') +const Block = require('ipfs-block') +const CID = require('cids') +const fs = require('fs') + +createNode((err, ipfs) => { + if (err) { + throw err + } + + console.log('\nStart of the example:') + + const gitObjects = [ + path.join(__dirname, '/git-objects/0f328c91df28c5c01b9e9f9f7e663191fa156593'), + path.join(__dirname, '/git-objects/177bf18bc707d82b21cdefd0b43b38fc8c5c13fe'), + path.join(__dirname, '/git-objects/23cc25f631cb076d5de5036c87678ea713cbaa6a'), + path.join(__dirname, '/git-objects/4e425dba7745a781f0712c9a01455899e8c0c249'), + path.join(__dirname, '/git-objects/6850c7be7136e6be00976ddbae80671b945c3e9d'), + path.join(__dirname, '/git-objects/a5095353cd62a178663dd26efc2d61f4f61bccbe'), + path.join(__dirname, '/git-objects/dc9bd15e8b81b6565d3736f9c308bd1bba60f33a'), + path.join(__dirname, '/git-objects/e68e6f6e31857877a79fd6b3956898436bb5a76f'), + path.join(__dirname, '/git-objects/ee62b3d206cb23f939208898f32d8708c0e3fa3c'), + path.join(__dirname, '/git-objects/ee71cef5001b84b0314438f76cf0acd338a2fd21') + ] + + asyncEach(gitObjects, (gitObjectsPath, cb) => { + const data = fs.readFileSync(gitObjectsPath) + + multihashing(data, 'sha1', (err, multihash) => { + if (err) { + cb(err) + } + const cid = new CID(1, 'git-raw', multihash) + console.log(cid.toBaseEncodedString()) + + ipfs.block.put(new Block(data, cid), cb) + }) + }, (err) => { + if (err) { + throw err + } + + const v1tag = 'z8mWaGfwSWLMPJ6Q2JdsAjGiXTf61Nbue' + + function errOrLog(comment) { + return (err, result) => { + if (err) { + throw err + } + + if (Buffer.isBuffer(result.value)) { //Blobs (files) are returned as buffer instance + result.value = result.value.toString() + } + + console.log('-'.repeat(80)) + console.log(comment) + console.log(result.value) + } + } + + + ipfs.dag.get(v1tag + '/', errOrLog('Tag object:')) + ipfs.dag.get(v1tag + '/object/message', errOrLog('Tagged commit message:')) + ipfs.dag.get(v1tag + '/object/parents/0/message', errOrLog('Parent of tagged commit:')) + + ipfs.dag.get(v1tag + '/object/tree/src/hash/hello/hash', errOrLog('/src/hello file:')) + ipfs.dag.get(v1tag + '/object/parents/0/tree/src/hash/hello/hash', errOrLog('previous version of /src/hello file:')) + }) +})