{"_id":"merge-trees","_rev":"8-93476bd8cc6dede102740396ab974eb6","name":"merge-trees","description":"Incrementally merge directories.","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"merge-trees","description":"Incrementally merge directories.","version":"1.0.0","author":{"name":"Jo Liss","email":"joliss42@gmail.com"},"main":"index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/broccolijs/node-merge-trees.git"},"keywords":["merge","copy"],"files":["index.js","entry.js"],"dependencies":{"can-symlink":"^1.0.0","fs-tree-diff":"^0.5.4","heimdalljs":"^0.2.1","heimdalljs-logger":"^0.1.7","rimraf":"^2.4.3","symlink-or-copy":"^1.0.0"},"devDependencies":{"chai":"^3.4.0","chai-files":"^1.4.0","fixturify":"^0.3.1","fs-extra":"^1.0.0","mocha":"^2.3.3","mocha-jshint":"^2.2.5"},"scripts":{"test":"mocha","test:debug":"mocha debug"},"gitHead":"b31f5357a10b66430ce6749691a2500732371844","bugs":{"url":"https://github.com/broccolijs/node-merge-trees/issues"},"homepage":"https://github.com/broccolijs/node-merge-trees#readme","_id":"merge-trees@1.0.0","_shasum":"17f567f54f023e1ab9e69aa2c93cdd4bc8d7f8e0","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"joliss","email":"joliss42@gmail.com"},"maintainers":[{"name":"joliss","email":"joliss42@gmail.com"}],"dist":{"shasum":"17f567f54f023e1ab9e69aa2c93cdd4bc8d7f8e0","tarball":"https://registry.npmjs.org/merge-trees/-/merge-trees-1.0.0.tgz","integrity":"sha512-jHtbUC0pcH1zLJLonXRQBUMJ/Z7z0cNPxQcgla2ItnVOzYzQbUhUCqYT7qOOpzYBlYHe0AeIeQy+zv1/TmVgxg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDGwepmnYOqwzl9Y1WDQW8mopeM92dPbCuFNlIUWtdIAAiBMMJnij7mNAo+ddq6AhFFBl7Df4s1kybnZFa1w4uKGZA=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/merge-trees-1.0.0.tgz_1488482790468_0.9329063685145229"},"directories":{}},"1.0.1":{"name":"merge-trees","description":"Incrementally merge directories.","version":"1.0.1","author":{"name":"Jo Liss","email":"joliss42@gmail.com"},"main":"index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/broccolijs/node-merge-trees.git"},"keywords":["merge","copy"],"files":["index.js","entry.js"],"dependencies":{"can-symlink":"^1.0.0","fs-tree-diff":"^0.5.4","heimdalljs":"^0.2.1","heimdalljs-logger":"^0.1.7","rimraf":"^2.4.3","symlink-or-copy":"^1.0.0"},"devDependencies":{"chai":"^3.4.0","chai-files":"^1.4.0","fixturify":"^0.3.1","fs-extra":"^1.0.0","mocha":"^2.3.3","mocha-jshint":"^2.2.5"},"scripts":{"test":"mocha","test:debug":"mocha debug"},"gitHead":"adb4f9011d5242afe3a0e93587a567b73758cce3","bugs":{"url":"https://github.com/broccolijs/node-merge-trees/issues"},"homepage":"https://github.com/broccolijs/node-merge-trees#readme","_id":"merge-trees@1.0.1","_shasum":"ccbe674569787f9def17fd46e6525f5700bbd23e","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"joliss","email":"joliss42@gmail.com"},"maintainers":[{"name":"joliss","email":"joliss42@gmail.com"}],"dist":{"shasum":"ccbe674569787f9def17fd46e6525f5700bbd23e","tarball":"https://registry.npmjs.org/merge-trees/-/merge-trees-1.0.1.tgz","integrity":"sha512-O7TWwipLHhc9tErjq3WBvNP7I1g7Wgudl1ZkLqpT7F2MZy1yEdgnI9cpZZxBaqk+wJZu+2b9FE7D3ubUmGFHFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIElc1X8EZQTfiZEtCoHGl4D17Ns/oWfTcD2zGjb8Goc6AiAfTyE3AAAEC1Y7tmGCMiKVtpuKJw7bQU2FTM5+oqmTAQ=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/merge-trees-1.0.1.tgz_1488484130949_0.3280270746909082"},"directories":{}},"2.0.0":{"name":"merge-trees","description":"Incrementally merge directories.","version":"2.0.0","author":{"name":"Jo Liss","email":"joliss42@gmail.com"},"main":"index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/broccolijs/node-merge-trees.git"},"keywords":["merge","copy"],"files":["index.js","entry.js"],"dependencies":{"fs-updater":"^1.0.4","heimdalljs":"^0.2.5"},"devDependencies":{"chai":"^4.1.2","fixturify":"^0.3.4","fs-extra":"^5.0.0","mocha":"^5.0.1","mocha-eslint":"^4.1.0","rimraf":"^2.6.2"},"scripts":{"test":"mocha","test:debug":"mocha debug"},"gitHead":"e73b5d201a943babce6a3687f791229971c95724","bugs":{"url":"https://github.com/broccolijs/node-merge-trees/issues"},"homepage":"https://github.com/broccolijs/node-merge-trees#readme","_id":"merge-trees@2.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"joliss","email":"joliss42@gmail.com"},"dist":{"integrity":"sha512-5xBbmqYBalWqmhYm51XlohhkmVOua3VAUrrWh8t9iOkaLpS6ifqm/UVuUjQCeDVJ9Vx3g2l6ihfkbLSTeKsHbw==","shasum":"a560d796e566c5d9b2c40472a2967cca48d85161","tarball":"https://registry.npmjs.org/merge-trees/-/merge-trees-2.0.0.tgz","fileCount":5,"unpackedSize":11771,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDf6p+UnGUKEQhp9dnGBHWXx457h6QJELMSLI2uTJwEgIgcSKNyQ9VByfULvyK9Yu5nu2d3yFBELVZhEa1kt19z5k="}]},"maintainers":[{"email":"joliss42@gmail.com","name":"joliss"},{"email":"me@rwjblue.com","name":"rwjblue"},{"email":"stefan.penner@gmail.com","name":"stefanpenner"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/merge-trees_2.0.0_1519088043021_0.8913635781824822"},"_hasShrinkwrap":false}},"readme":"# node-merge-trees\n\n[![Build Status](https://travis-ci.org/broccolijs/node-merge-trees.svg?branch=master)](https://travis-ci.org/broccolijs/node-merge-trees)\n[![Build status](https://ci.appveyor.com/api/projects/status/6c47hp9omebk09tq/branch/master?svg=true)](https://ci.appveyor.com/project/joliss/node-merge-trees/branch/master)\n\nSymlink or copy multiple trees of files on top of each other, resulting in a single merged tree.\n\nOptimized for repeated (incremental) merging.\n\n## Installation\n\n```bash\nnpm install --save merge-trees\n```\n\n## Usage\n\n* `new MergeTrees(inputPaths, outputPath, options)`:\n\n    * **`inputPaths`**: An array of paths to the input directories\n\n    * **`outputPath`**: The path to the output directory. Must exist and be empty.\n\n    * **`options`**: A hash of options\n\n* `mergeTrees.merge()`: Merge the input directories into the output directory.\n  Can be called repeatedly for efficient incremental merging.\n\n### Options\n\n* `overwrite`: By default, node-merge-trees throws an error when a file\n  exists in multiple nodes. If you pass `{ overwrite: true }`, the output\n  will contain the version of the file as it exists in the last input\n  directory that contains it.\n\n* `annotation`: A note to help with logging.\n\n### Example\n\n```js\nvar MergeTrees = require('merge-trees');\n\nvar mergeTrees = new MergeTrees(\n  ['public', 'scripts'],\n  'output-dir',\n  { overwrite: true });\n\n// Recursively symlink all files from the \"public\" and \"scripts\"\n// directories into the \"output-dir\" directory.\nmergeTrees.merge()\n\n// ... add or remove files or directories in some input directories ...\n\n// Incrementally update the output directory (efficient).\nmergeTrees.merge()\n```\n\nSay the directory structure is as follows:\n\n    .\n    ├─ public\n    │  ├─ index.html\n    │  └─ images\n    │     └─ logo.png\n    ├─ scripts\n    │  └─ app.js\n    ├─ output-dir\n    …\n\nRunning `mergeTrees.merge()` will generate this folder:\n\n    .\n    ├─ …\n    └─ output-dir\n       ├─ app.js\n       ├─ index.html\n       └─ images\n          └─ logo.png\n\nThe parent folders, `public` and `scripts` in this case, are not included in the output. The output tree contains only the files *within* each folder, all mixed together.\n\n## Contributing\n\nClone this repo and run the tests like so:\n\n```\nnpm install\nnpm test\n```\n\nIssues and pull requests are welcome. If you change code, be sure to re-run\n`npm test`. Oftentimes it's useful to add or update tests as well.\n","maintainers":[{"email":"joliss42@gmail.com","name":"joliss"},{"email":"me@rwjblue.com","name":"rwjblue"},{"email":"stefan.penner@gmail.com","name":"stefanpenner"}],"time":{"modified":"2022-06-19T17:53:38.455Z","created":"2017-03-02T19:26:31.086Z","1.0.0":"2017-03-02T19:26:31.086Z","1.0.1":"2017-03-02T19:48:51.601Z","2.0.0":"2018-02-20T00:54:03.113Z"},"homepage":"https://github.com/broccolijs/node-merge-trees#readme","keywords":["merge","copy"],"repository":{"type":"git","url":"git+https://github.com/broccolijs/node-merge-trees.git"},"author":{"name":"Jo Liss","email":"joliss42@gmail.com"},"bugs":{"url":"https://github.com/broccolijs/node-merge-trees/issues"},"license":"MIT","readmeFilename":"README.md"}