{"_id":"grunt-svn-workflow","_rev":"31-2e2ab261795221f5f5d262fa60282252","name":"grunt-svn-workflow","dist-tags":{"latest":"0.2.10"},"versions":{"0.0.0":{"name":"grunt-svn-workflow","version":"0.0.0","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["grunt","svn","workflow"],"author":{"name":"Tony Liang"},"license":"ISC","_id":"grunt-svn-workflow@0.0.0","_shasum":"0b8687c0df24119a6d2088ace35975cf9f1f4466","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"0b8687c0df24119a6d2088ace35975cf9f1f4466","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.0.0.tgz","integrity":"sha512-FfKz50nqzzK/yiJ/N7J+OV2tpeyiOf4TYUOWIuVb4NFvj2SCxtO8Han62teRkhxkpAfHGY9WYW8yrv7wdbVPrQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4jhS0XIfJJQItFVEDQtyaP3ON6DJXJjCqspADlbnUSAiA+8O6L4J9P807s/0+T3hHQAM+9G5VI1aLsfVeSwrzD1A=="}]}},"0.0.1":{"name":"grunt-svn-workflow","version":"0.0.1","description":"Manage svn folders.","author":{"name":"Tony Liang"},"repository":{"type":"git","url":"git@github.com:Esoul/grunt-svn-workflow.git"},"dependencies":{"svn-spawn":"0.1.1"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-clean":"^0.6.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test"},"files":["tasks","LICENSE-MIT"],"license":"ISC","bugs":{"url":"https://github.com/Esoul/grunt-svn-workflow/issues"},"homepage":"https://github.com/Esoul/grunt-svn-workflow","_id":"grunt-svn-workflow@0.0.1","_shasum":"4d4907e08024a5261228c2a09370030b3406b0f8","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"4d4907e08024a5261228c2a09370030b3406b0f8","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.0.1.tgz","integrity":"sha512-Vr8hCcDEiSls/MjynaKduZQ2kni9yQ3tUbgEcOL+Q4Tu56n3PcyRWS/+kxGbRwEUzo9iEfH6g7AJEmEjCXoRSQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIApr3HMaKKjgugGrswREye1xvjFVBCs0tKRPhx45LWa1AiEAg8LKYKd4f/g6x/4DQKomIVbHNrmkRJaIZGQsVbkqR0Y="}]}},"0.0.2":{"name":"grunt-svn-workflow","version":"0.0.2","description":"Manage svn folders.","author":{"name":"Tony Liang"},"repository":{"type":"git","url":"git@github.com:Esoul/grunt-svn-workflow.git"},"dependencies":{"svn-spawn":"0.1.1"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-clean":"^0.6.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test"},"files":["tasks","LICENSE-MIT"],"license":"ISC","bugs":{"url":"https://github.com/Esoul/grunt-svn-workflow/issues"},"homepage":"https://github.com/Esoul/grunt-svn-workflow","_id":"grunt-svn-workflow@0.0.2","_shasum":"a21cde8f4c495a8fadacb145e22becb1d73b63cb","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"a21cde8f4c495a8fadacb145e22becb1d73b63cb","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.0.2.tgz","integrity":"sha512-3s+ycuu2z9aGI/ITnktrrHse4014kfkswUnKuJ057XVdgkbc2Wcur87EinFoz6uVQSOiy/uN8FFxMmhYtfSJaQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+JuFsHAJwrAlC1NdLODWHJgxuXehM5u+REnFQ1dBKiwIhAITDn+f7Mek/T0QR4ghx2UYt2F6oaWmxxwT5APuyZ7UX"}]}},"0.0.3":{"name":"grunt-svn-workflow","version":"0.0.3","description":"Manage svn folders.","author":{"name":"Tony Liang"},"repository":{"type":"git","url":"git@github.com:Esoul/grunt-svn-workflow.git"},"dependencies":{"svn-spawn":"0.1.1","ask-for":"0.0.2","easy-spawn":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-clean":"^0.6.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test"},"files":["tasks","LICENSE-MIT"],"license":"ISC","bugs":{"url":"https://github.com/Esoul/grunt-svn-workflow/issues"},"homepage":"https://github.com/Esoul/grunt-svn-workflow","_id":"grunt-svn-workflow@0.0.3","_shasum":"23df9bdc25cd618ae7b0204fd194b9d5c2082d1f","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"23df9bdc25cd618ae7b0204fd194b9d5c2082d1f","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.0.3.tgz","integrity":"sha512-ZH7w2E3T+YvAFlu0zumnH4BOO2g2U7IXRKoSvHJyCGsJ3SkxLUVuo+eyCWj2zL40QI43MZPiCmf3XArWMMsLcg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBLHgZmu9A3ynVOxgGjLtlqdWymQb2V9Q+hiqwSwAo1nAiEAx9+gfrSXKF3t+2Mb8W7Vn+1AqEIoRcmI2A0vKFFgCAM="}]}},"0.0.4":{"name":"grunt-svn-workflow","version":"0.0.4","description":"Manage svn folders.","author":{"name":"Tony Liang"},"repository":{"type":"git","url":"git@github.com:Esoul/grunt-svn-workflow.git"},"dependencies":{"svn-spawn":"0.1.1","ask-for":"0.0.2","easy-spawn":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-copy":"^0.6.0","grunt-contrib-clean":"^0.6.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test"},"files":["tasks","LICENSE"],"license":"MIT","bugs":{"url":"https://github.com/Esoul/grunt-svn-workflow/issues"},"homepage":"https://github.com/Esoul/grunt-svn-workflow","_id":"grunt-svn-workflow@0.0.4","_shasum":"df127f8ff945cb26f5b63e3880814b5aac1eb624","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"df127f8ff945cb26f5b63e3880814b5aac1eb624","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.0.4.tgz","integrity":"sha512-HpqCdr/VFJqFeYs/msb3h9tU+cgVcV4XtHf6Kd4NgJab7a/yxgPYHBsjaYQmnDjL8uiR2AXZYlb87IyvjWH7qA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhiYIm50PKRvaq27dG84mWS3wpxaY9KvYC3jCvy+RATAIgM4It82xUK7ZB8zhTGe6Wf1kT1QReDSLdLqGq/BPZj5o="}]}},"0.1.0":{"name":"grunt-svn-workflow","version":"0.1.0","description":"Manage svn folders.","author":{"name":"Tony Liang"},"repository":{"type":"git","url":"git@github.com:Esoul/grunt-svn-workflow.git"},"dependencies":{"svn-spawn":"0.1.1","ask-for":"0.0.2","easy-spawn":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-copy":"^0.6.0","grunt-contrib-clean":"^0.6.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test"},"files":["tasks","LICENSE"],"license":"MIT","bugs":{"url":"https://github.com/Esoul/grunt-svn-workflow/issues"},"homepage":"https://github.com/Esoul/grunt-svn-workflow","_id":"grunt-svn-workflow@0.1.0","_shasum":"4ba48f0d8d242d6b60e6ea0682ff20a55fc14463","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"4ba48f0d8d242d6b60e6ea0682ff20a55fc14463","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.1.0.tgz","integrity":"sha512-QzttIqpTejMToc7Fdb8tJ8RzIYvALmsBD6QfymVu0i7ui2YQNvG7713a5FGvFiu0Sk6xYjuc0PDm+pdc7Q3gfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZIIfEuUIuLwBtg0X0rKUbhUORTYdp9rK9FMJJOTXc4wIgeWUw0P0bHB3KKAeIKqhe3JXm7rlqAxNerZPVYiRYi7A="}]}},"0.1.1":{"name":"grunt-svn-workflow","version":"0.1.1","description":"Manage svn folders.","author":{"name":"Tony Liang"},"repository":{"type":"git","url":"git@github.com:Esoul/grunt-svn-workflow.git"},"dependencies":{"svn-spawn":"0.1.1","ask-for":"0.0.2","easy-spawn":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-copy":"^0.6.0","grunt-contrib-clean":"^0.6.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test"},"files":["tasks","LICENSE"],"license":"MIT","bugs":{"url":"https://github.com/Esoul/grunt-svn-workflow/issues"},"homepage":"https://github.com/Esoul/grunt-svn-workflow","_id":"grunt-svn-workflow@0.1.1","_shasum":"7ad9ad9f3fd0f83b834272c0b941317d3804091d","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"7ad9ad9f3fd0f83b834272c0b941317d3804091d","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.1.1.tgz","integrity":"sha512-3zBQ5ozD4ZdKyuJ244PqhSFtdnavJV3+Oy1IZj5LVCnJbK31le1tc6UFJSpEsRxGnL5FoERulBRQTMmKW1R+6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVI4ZBYuWZtzgsCVNmztTiB/TpDkTcmk9DT8fiWzNFvgIhAPb2b/Xnv2karpnyHXBq84kU01CmxjqA6A9aJ45KQnPi"}]}},"0.1.2":{"name":"grunt-svn-workflow","version":"0.1.2","description":"Manage svn folders.","author":{"name":"Tony Liang","email":"pillar0514@gmail.com"},"homepage":"https://github.com/Esoul/grunt-svn-workflow","repository":{"type":"git","url":"git@github.com:Esoul/grunt-svn-workflow.git"},"dependencies":{"svn-spawn":"0.1.1","ask-for":"0.0.2","easy-spawn":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-copy":"^0.6.0","grunt-contrib-clean":"^0.6.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test"},"files":["tasks","LICENSE"],"bugs":{"url":"https://github.com/Esoul/grunt-svn-workflow/issues"},"license":"MIT","_id":"grunt-svn-workflow@0.1.2","_shasum":"6049c489502428896560bae155b63905e15f4dac","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"6049c489502428896560bae155b63905e15f4dac","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.1.2.tgz","integrity":"sha512-3ACK3z5IJgFrcXABQ7nQHReVs7klx9JrhYDJRQP13Tqvlw7lx9g+FEkV/an4eTeb0IHqomc2JKAgg9sszAy/7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBSX4NAb7kOCa8ZdsiRIsbpAhgOXJSn2riweTyCAebBdAiEA1actlfSx//tXEfqtoL7f4dgqvOokv1RLPkdVgK5ET1k="}]}},"0.2.0":{"name":"grunt-svn-workflow","version":"0.2.0","description":"Manage svn folders.","author":{"name":"Tony Liang","email":"pillar0514@gmail.com"},"homepage":"https://github.com/Esoul/grunt-svn-workflow","repository":{"type":"git","url":"git@github.com:Esoul/grunt-svn-workflow.git"},"dependencies":{"ask-for":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test-result"},"files":["utils","tasks","docs","example/tools","README.md","LICENSE"],"bugs":{"url":"https://github.com/Esoul/grunt-svn-workflow/issues"},"license":"MIT","_id":"grunt-svn-workflow@0.2.0","_shasum":"69c49f4fd32485239a41880ce578a1cb92f6ebe0","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"69c49f4fd32485239a41880ce578a1cb92f6ebe0","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.2.0.tgz","integrity":"sha512-gaqygYn7W5eWBgGq/MnbVKNwNW2/wkHQQ1D2PtIVxspCDQ5PADDxAx3Bd4nCMKISqeT1prguZNEv5R+Naseocw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCy+ymTOZ2tKyoKWOtaVoch+CQPpkv2U4WeyGG6pYBlTAIhAL6UlR4vQrQmD/XTsX9U4nQCVOdBzT3YqxEw9dZXVGZ5"}]}},"0.2.1":{"name":"grunt-svn-workflow","version":"0.2.1","description":"Manage svn folders.","author":{"name":"Tony Liang","email":"pillar0514@gmail.com"},"homepage":"https://github.com/Esoul/grunt-svn-workflow","repository":{"type":"git","url":"git@github.com:Esoul/grunt-svn-workflow.git"},"dependencies":{"ask-for":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test-result"},"files":["utils","tasks","docs","example","README.md","LICENSE"],"bugs":{"url":"https://github.com/Esoul/grunt-svn-workflow/issues"},"license":"MIT","_id":"grunt-svn-workflow@0.2.1","_shasum":"e348035073af4f1d00f97d7e610e9114963fbc9c","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"e348035073af4f1d00f97d7e610e9114963fbc9c","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.2.1.tgz","integrity":"sha512-bdpU+xyorIMlqifhWig06mkksL4103FIISRN2RrRoazrC12dY1uEkeNj0wtOh6HSL753mTquMWAfleYyCei10w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDbwro+oK96OW9es8TYPqpj3Uyd0WHLNOWOQKRBG4TCHAiB9P4J/HpTGw4ftYJ+Q4WgLWoIyvizTH7fcYdJmJWLRTQ=="}]}},"0.2.2":{"name":"grunt-svn-workflow","version":"0.2.2","description":"Manage svn folders.","author":{"name":"Tony Liang"},"homepage":"https://github.com/tony-302/grunt-svn-workflow","repository":{"type":"git","url":"git@github.com:tony-302/grunt-svn-workflow.git"},"dependencies":{"ask-for":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test-result"},"files":["utils","tasks","docs","example","README.md","LICENSE"],"bugs":{"url":"https://github.com/tony-302/grunt-svn-workflow/issues"},"license":"MIT","_id":"grunt-svn-workflow@0.2.2","_shasum":"591cf506588c8d0daa8afd1bfc069b95d51e91ca","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"591cf506588c8d0daa8afd1bfc069b95d51e91ca","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.2.2.tgz","integrity":"sha512-dbbTUgTxbbZgXzEicEyjInsTsIemTW0Fat3ZoIfYStvOMykyNfMtd87bexkUIipjHHnVUUztn8jog2hYOlEo5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID4dPUzG9RL78EBaB5r4FdoEhpmnaYhTFTXiKzHuIaiBAiEAzyp3qf+em90knANVGy/xglFjpD4nYHxogABFsz0pJek="}]}},"0.2.3":{"name":"grunt-svn-workflow","version":"0.2.3","description":"Manage svn folders.","author":{"name":"Tony Liang"},"homepage":"https://github.com/tony-302/grunt-svn-workflow","repository":{"type":"git","url":"git@github.com:tony-302/grunt-svn-workflow.git"},"dependencies":{"ask-for":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test-result"},"files":["utils","tasks","docs","example","README.md","LICENSE"],"bugs":{"url":"https://github.com/tony-302/grunt-svn-workflow/issues"},"license":"MIT","_id":"grunt-svn-workflow@0.2.3","_shasum":"8b11bc28c41d74077ee55226b508b2a18a78a977","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"8b11bc28c41d74077ee55226b508b2a18a78a977","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.2.3.tgz","integrity":"sha512-GiB5z8hst4plEw6xSTn0LngyVJU+EKjKbWT8BCQ2/IzoX63J3izTICgpzSFBMW9LV3DdxMp1UXWxgi3F64AP3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDRr+3QEKEcSICj45b8k6R62v3tZ8a07rpoGZT6+GQapAiEAye7ugCrx4gzvmk79McXZ0mkNaJqFGhZy8ZQBzk6x0Uo="}]}},"0.2.4":{"name":"grunt-svn-workflow","version":"0.2.4","description":"Manage svn folders.","author":{"name":"Tony Liang"},"homepage":"https://github.com/tony-302/grunt-svn-workflow","repository":{"type":"git","url":"git@github.com:tony-302/grunt-svn-workflow.git"},"dependencies":{"ask-for":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test-result"},"files":["utils","tasks","docs","example","README.md","LICENSE"],"bugs":{"url":"https://github.com/tony-302/grunt-svn-workflow/issues"},"license":"MIT","_id":"grunt-svn-workflow@0.2.4","_shasum":"b50d9e1905b55acebbc812886a0ca6a26657e0f0","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"b50d9e1905b55acebbc812886a0ca6a26657e0f0","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.2.4.tgz","integrity":"sha512-2nz5h2aS/yreSlRN5NsYa/33UzxvCNGNx+1AXCe1nr8NnbtCgJtAFeccnU63YSS+CjsNKmFTeI2Unf0YgEAqgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3hJTJDccPPHquDH82w3G7Axed0dJkXjnDSXFWPfj1mQIhAM492q+YJsOqyFW9MIMgkc7ZbyPymLlGTt4HYoVQXgGb"}]}},"0.2.5":{"name":"grunt-svn-workflow","version":"0.2.5","description":"Manage svn folders.","author":{"name":"Tony Liang"},"homepage":"https://github.com/tony-302/grunt-svn-workflow","repository":{"type":"git","url":"git@github.com:tony-302/grunt-svn-workflow.git"},"dependencies":{"ask-for":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test-result"},"files":["utils","tasks","docs","example","README.md","LICENSE"],"bugs":{"url":"https://github.com/tony-302/grunt-svn-workflow/issues"},"license":"MIT","_id":"grunt-svn-workflow@0.2.5","_shasum":"a07dc367f2e2eb46ee013d7f2a794aead417cf1f","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"a07dc367f2e2eb46ee013d7f2a794aead417cf1f","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.2.5.tgz","integrity":"sha512-F7frYlpUt16UyQFfwW81wPNXfArWk630yFpa/EbS/qFs34G0vWTVjsBQwkGW3Y+Mm8+syLnv2NZZFKc+trZIww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC4Ko3RuEZnHoNhr9WAm74b0Yeg+Pq0aFiR9QomQgvNrAiAAio4+LemXx87oPu2bmjrAXLrWdvZGM3keFFS0GSoBow=="}]}},"0.2.6":{"name":"grunt-svn-workflow","version":"0.2.6","description":"Manage svn folders.","author":{"name":"Tony Liang"},"homepage":"https://github.com/tony-302/grunt-svn-workflow","repository":{"type":"git","url":"git@github.com:tony-302/grunt-svn-workflow.git"},"dependencies":{"ask-for":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test-result"},"files":["utils","tasks","docs","example","README.md","LICENSE"],"bugs":{"url":"https://github.com/tony-302/grunt-svn-workflow/issues"},"license":"MIT","_id":"grunt-svn-workflow@0.2.6","_shasum":"ba3bf71547bdf7d24243cb4876569c9142908147","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"ba3bf71547bdf7d24243cb4876569c9142908147","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.2.6.tgz","integrity":"sha512-8y5FYkVRbhUyE2yVat5cNBzLF4wlLWx7/O6GiydBQQa8v+5tAPN91+4SrOzQzyIPskw9N9Bqvp0PK7PjJDrwkA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRcoA7zJ/YxpmhehlDWuvcessLZvSejmXrWHUZNMg3ugIhAM3ikhuUNzArXgYKRotuV5WXSj99uaSIkboy3a/Gbjok"}]}},"0.2.8":{"name":"grunt-svn-workflow","version":"0.2.8","description":"Manage svn folders.","author":{"name":"Tony Liang"},"homepage":"https://github.com/tony-302/grunt-svn-workflow","repository":{"type":"git","url":"git@github.com:tony-302/grunt-svn-workflow.git"},"dependencies":{"ask-for":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test-result"},"files":["utils","tasks","docs","example","README.md","LICENSE"],"bugs":{"url":"https://github.com/tony-302/grunt-svn-workflow/issues"},"license":"MIT","_id":"grunt-svn-workflow@0.2.8","_shasum":"d54a51a4c85ca777500493c3c17e9ce244083ad5","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"d54a51a4c85ca777500493c3c17e9ce244083ad5","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.2.8.tgz","integrity":"sha512-2jJ4JZnoX3guyfa//Imka3JgL7g9s6CXfKFV33LCEd1z97sy6X/obVwFkvxKoUIVo1uga7KqgOJ3jFhC6/VlAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlnAX8DmKMNfTF8jLtKbtU5Q/lwSyoOGyLAtNOsF22FgIhAJF7NpKhPamKZVP7dmXBtogR1JhcViG4RSOOss7Jd7YB"}]}},"0.2.9":{"name":"grunt-svn-workflow","version":"0.2.9","description":"Manage svn folders.","author":{"name":"Tony Liang"},"homepage":"https://github.com/tabspace/grunt-svn-workflow","repository":{"type":"git","url":"git@github.com:tabspace/grunt-svn-workflow.git"},"dependencies":{"ask-for":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test-result"},"files":["utils","tasks","docs","example","README.md","LICENSE"],"bugs":{"url":"https://github.com/tabspace/grunt-svn-workflow/issues"},"license":"MIT","gitHead":"953b96e6ecad335f2729b36a96cddcdbe59732c6","_id":"grunt-svn-workflow@0.2.9","_shasum":"885e887790431623e6a969821872a3f238bd1937","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"dist":{"shasum":"885e887790431623e6a969821872a3f238bd1937","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.2.9.tgz","integrity":"sha512-XMmr0gxApIiC3RhlM+JY9MqwavoOD+QWS11R1+86ePUoObKhHhzcjWkGXvilKNWg7usz0b2VLntNmpgRC9UOiA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrYXM4CExJ5XdfVqskYOEJi99icYlAVcHXnVWbLYqOCAIhAK8m4HTNi/Go9PoAtxtTw/9dWV0wSfYva/bXns0dkeWv"}]}},"0.2.10":{"name":"grunt-svn-workflow","version":"0.2.10","description":"Manage svn folders.","author":{"name":"Tony Liang"},"homepage":"https://github.com/tabspace/grunt-svn-workflow","repository":{"type":"git","url":"git+ssh://git@github.com/tabspace/grunt-svn-workflow.git"},"dependencies":{"ask-for":"0.0.2"},"devDependencies":{"grunt":"^0.4.2","grunt-contrib-jshint":"^0.10.0","grunt-contrib-nodeunit":"^0.4.0"},"keywords":["grunt","svn","workflow"],"scripts":{"test":"grunt test-result"},"files":["utils","tasks","docs","example","README.md","LICENSE"],"bugs":{"url":"https://github.com/tabspace/grunt-svn-workflow/issues"},"license":"MIT","gitHead":"d20c050bc9c0219f354b49e701d32a99a612a657","_id":"grunt-svn-workflow@0.2.10","_shasum":"f864d8a06aa1578234e70089978f1694d5c12520","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"pillar0514","email":"pillar0514@gmail.com"},"dist":{"shasum":"f864d8a06aa1578234e70089978f1694d5c12520","tarball":"https://registry.npmjs.org/grunt-svn-workflow/-/grunt-svn-workflow-0.2.10.tgz","integrity":"sha512-SOGitjIGVupKnt3YLC5WbwtHqrSqM1rWK9mXCoQzJps1itARAUfw3t/hS0PwaRTYi/T4JP2SJbV+3QyV0+EDdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAxxMA8BrWjTZ8XZM30dobYj5EotxSTH0tsjaSOTB861AiEA+OPKfPu6RhMu1dro/VA6mIlKyMFcAvEBMlzF7OJBH74="}]},"maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/grunt-svn-workflow-0.2.10.tgz_1468825084951_0.2402990299742669"}}},"readme":"#grunt-svn-workflow\n\n[![Build Status: Linux](https://travis-ci.org/TabSpace/grunt-svn-workflow.svg?branch=master)](https://travis-ci.org/TabSpace/grunt-svn-workflow)\n[![dependencies](https://david-dm.org/TabSpace/grunt-svn-workflow.png)](http://david-dm.org/TabSpace/grunt-svn-workflow)\n[![NPM version](http://img.shields.io/npm/v/grunt-svn-workflow.svg)](https://www.npmjs.org/package/grunt-svn-workflow)\n\n[中文](https://github.com/TabSpace/grunt-svn-workflow/blob/master/docs/README_zh-cn.md)\n\n> An SVN operation automation solution\n\nFacilitate to realize and improve automatic processes for SVN directory operation.\n\nExample directory provides a simple management process based on SVN project. \n\nCan copy from the last package to the current log through a SVN route, and use it as the log of the latest code.  \n\nSet a prompt in the task queue, and determine whether to interrupt tasks based on options.  \n\nRealize a configuration with relative path and reuse it for many projects. \n\n## For\n\nIt is used for projects which still need to use SVN. \n\n## Prepare\n\nnode, npm.\n\nSVN >= 1.6\n\nNeed to install SVN CLI, set the language edition as English. (Options for CLI installation are provided when Tortoise SVN is installed)\n\nGrunt CLI\n\n## Quick Start\n\n1. Create a svn directory for your project, and use it as the svn root path for project management. \n\n2. Create a tools directory in svn directory, and use it for storing various automated tools.\n\n3. Create a local directory, and use it as the local root path and for deploying your project. __Attention: it is not a svn directory and not to be detected.__\n\n4. Detect tools directory in the local project directory. \n\n5. Copy files under example/tools to tools folder under your project directory. \n > \n > Suppose your project name is svn-workflow, then, the structure of the local project directory is shown below: \n > \n > ![image](https://cloud.githubusercontent.com/assets/550449/5297160/0b58853c-7be7-11e4-888f-a6a567e61445.png)\n > \n\n6. Install npm component for project independency: \n > \n > ```shell\n > npm install -d\n > ```\n >\n\n7. Structure of svn directory of initialized project:\n > \n > ```shell\n > grunt svnConfig svnInit\n > ```\n >\n\n8. Deploy local project files: \n > \n > ```shell\n > grunt deploy\n > ```\n > \n\n9. Release project files: \n > \n > ```shell\n > grunt publish\n > ```\n > \n\n## Getting Started\n\n1. This plugin is required to use Grunt ~0.4.0  \n > \n > If you have never used [Grunt](http://gruntjs.com/), please refer to Grunt description: [Getting Started](http://gruntjs.com/getting-started), which introduces how to create a Gruntfile and how to install and use grunt plugin. When you get familiar with this process, install the plugin with the command: \n > ```shell\n > npm install grunt-svn-workflow --save-dev\n > ```\n > \n\n2. After the plugin is installed, get it started with javascript code: \n > \n > ```js\n > grunt.loadNpmTasks('grunt-svn-workflow');\n > ```\n > \n\n3. Refer to sample file to configure task file, or directly copy task configuration and use it as the project template. \n\n## svnConfig multitask\n\n__It is used for configuration of svn root path. If svn root path of the project is obtained from local svn path, task svnConfig should be executed before other tasks are fulfilled.__\n\n__examples__\n\n```js\ngrunt.registerTask('deploy', [\n    'svnConfig',\n    'svnCheckout:deploy'\n]);\n```\n\n#### Task name type: `String`\n\nType: `String`\n\nDefault: `''`\n\nIn case of no options but a character string, this character string shall be directly used as svn root path of the project. \n\n__examples__\n\n```js\ngrunt.initConfig({\n    svnConfig : {\n        project : 'https://svn.sinaapp.com/gruntsvnworkflow/1/svn-workflow/'\n    }\n});\n```\n\n#### from\n\nType: `String`\n\nIt is used for obtaining the local svn directory of svn root path. \n\n#### to\n\nType: `String` | `Function`\n\nIt is the svn path which need to be located finally and the relative path of svn path corresponding to local directory. \n\nIt can be a function, which uses the svn path transmitted as the parameter and figures out the target svn path to be located. \n\nIt facilitates to realize efficient reuse of configuration file after the project directory is standardized and established. \n\n#### svnConfig usage examples\n\n```js\nvar path = require('path');\ngrunt.initConfig({\n    svnConfig : {\n        project : {\n            from : path.resolve(__dirname, 'test/test/base'),\n            to : '../'\n        },\n        compute : {\n            from : path.resolve(__dirname, 'test/test/base'),\n            to : function(url){\n                return url.replace(/base$/, '');\n            }\n        }\n    }\n});\n```\n\nSuppose the local directory  'test/test/base' is a svn directory, corresponding svn directory is \"https://svn.sinaapp.com/gruntsvnworkflow/1/svn-workflow/test/base\".\n\nAfter task svnConfig:project is fulfilled, obtain the address of the online svn directory and use it as that of svn root path of the project: \n\ngrunt.config.get('svnConfig.project') === \"https://svn.sinaapp.com/gruntsvnworkflow/1/svn-workflow/test/\"。\n\n## svnInit multitask\n\n__svn directory of initialized project.__\n\n#### options.repository / repository\n\nType: `String`\n\nProject svn root path. \n\n#### options.cwd / cwd\n\nType: `String`\n\nProject local root path.\n\n#### map\n\nType: `Object`\n\nIt describes the structure of svn directory\n\n#### svnInit usage examples\n\n```js\nvar path = require('path');\n\ngrunt.initConfig({\n    projectDir : path.resolve(__dirname, '../'),\n    svnConfig : {\n        project : {\n            from : path.resolve(__dirname),\n            to : '../'\n        }\n    },\n    svnInit : {\n        options : {\n            repository: '<%=svnConfig.project%>',\n            cwd: '<%=projectDir%>'\n        },\n        project : {\n            // Build pathes according to the map.\n            map : {\n                'dev' : {\n                    'branches' : 'folder',\n                    'tags' : 'folder',\n                    'trunk' : {\n                        'html' : 'folder',\n                        'css' : 'folder',\n                        'js' : 'folder'\n                    }\n                },\n                'online' : {\n                    'tags' : 'folder',\n                    'trunk' : 'folder'\n                }\n            }\n        }\n    }\n});\n```\n\n```shell\ngrunt svnConfig svnInit\n```\n\nThen, figure out the structure of svn directory as below: \n\n![image](https://cloud.githubusercontent.com/assets/550449/5297204/6d00973e-7be7-11e4-9dcb-08e3e07247ab.png)\n\n## svnCheckout multitask\n\n__It is used for lot inspection of files and directories.__\n\n#### options.repository / repository\n\nType: `String`\n\nProject svn root path. \n\n#### options.cwd / cwd\n\nType: `String`\n\nProject local root path. \n\n#### map\n\nType: `Object`\n\nIt describes the mapping relation between svn path and local directory. \n\nIt is a key : value format \n\nkey is a relative path to the local root directory \n\nvalue is a svnCommit multitask relative to svn  \n\n#### svnCheckout usage examples\n\n```js\nvar path = require('path');\n\ngrunt.initConfig({\n    projectDir : path.resolve(__dirname, '../'),\n    svnConfig : {\n        project : {\n            from : path.resolve(__dirname),\n            to : '../'\n        }\n    },\n    svnCheckout : {\n        options : {\n            repository: '<%=svnConfig.project%>',\n            cwd: '<%=projectDir%>'\n        },\n        deploy : {\n            map : {\n                'trunk' : 'dev/trunk',\n                'dist' : 'online/trunk'\n            }\n        }\n    }\n});\n```\n\n```shell\ngrunt svnConfig svnCheckout\n```\n\n## svnCommit multitask\n\n__It is used for submitting the code automatically.__\n\n#### options.repository / repository\n\nType: `String`\n\nProject svn root path.\n\n#### options.cwd / cwd\n\nType: `String`\n\nProject local root path. \n\n#### svn\n\nType: `String`\n\nIt is a relative path to svn root path. \n\n#### src\n\nType: `String`\n\nIt is a relative path to local root path. \n\n#### question\n\nType: `String`\n\nQuestion prompts are user-defined for keeping the log manually. \n\n#### log\n\nType: `String` | `Function`\n\nLog to be submitted. \n\nIt can be set as a function, the returned value can be the log when questions are submitted.\n\nIf it is packaged with a bracket, provide a relative path to svn root path. \n\nIf the address is not an absolute path, calculate svn path automatically according to the attribute of repository.\n\nThe log of this target svn path will be copied and used as the log to be submitted. \n\nCopy only the log larger than the current version number of svn target path to be submitted. \n\nIn case of keeping the log manually, {ask} field should exist in the attribute, which will be replaced by information filled manually. \n\n#### svnCommit usage examples\n\n```js\nvar path = require('path');\n\ngrunt.initConfig({\n    projectDir : path.resolve(__dirname, '../'),\n    svnConfig : {\n        project : {\n            from : path.resolve(__dirname),\n            to : '../'\n        }\n    },\n    svnCommit : {\n        options : {\n            repository: '<%=svnConfig.project%>',\n            cwd: '<%=projectDir%>'\n        },\n        // The default log is ：\"Auto commit by task svnCommit:auto\"\n        auto : {\n            svn : 'online/trunk',\n            src : 'trunk'\n        },\n        // The log should be a string , could use grunt template.\n        custom : {\n            log : 'custom log.'\n            svn : 'online/trunk',\n            src : 'trunk'\n        },\n        // Use a function return the log string.\n        useFunction : {\n            log : function(){\n                return 'custom log ' + Date.now();\n            },\n            svn : 'online/trunk',\n            src : 'trunk'\n        },\n        // Give a prompt in console. Let the user fill the log.\n        ask : {\n            log : 'Custom log: {ask}'\n            svn : 'online/trunk',\n            src : 'tools/temp/online'\n        },\n        // Custom the prompt in console.\n        askCustom : {\n            question : 'Input the log:',\n            log : 'Custom your logs: {ask}'\n            svn : 'online/trunk',\n            src : 'tools/temp/online'\n        },\n        // If svn root path is \"https://svn.sinaapp.com/gruntsvnworkflow/1/svn-workflow/example/\"。\n        // If local project root path is \"~/work/svn-workflow/example\"\n        // Execute the follow task, will commit in directory: \"~/work/svn-workflow/example/tools/temp/online\" 。\n        // Commit to : \"https://svn.sinaapp.com/gruntsvnworkflow/1/svn-workflow/example/online/trunk\" 。\n        // The log will be getted from the svn path: \"https://svn.sinaapp.com/gruntsvnworkflow/1/svn-workflow/example/dev/trunk\"\n        copyLogFrom : {\n            log : '[dev/trunk]',\n            svn : 'online/trunk',\n            src : 'tools/temp/online'\n        }\n    }\n});\n```\n\n```shell\ngrunt svnConfig svnCommit\n```\n\n## svnCopy multitask\n\n__Copy a svn directory, and use it for automatic generation of tag process and branch process generally.__\n\n#### options.repository / repository\n\nType: `String`\n\nProject svn root path. \n\n#### from\n\nType: `String`\n\nTo copy the directory, fill in relative path to project svn root path. \n\n#### to\n\nType: `String`\n\nTo copy the directory to the target svn directory, fill in the relative path to project svn root path. \n\n#### question\n\nType: `String`\n\nIn case of obtain the rename of the directory to the copied from the console, user-define questions of the console through attributes.  \n\n#### rename\n\nType: `String` | `Function`\n\nCopy the renamed name of the directory. \n\nIn case of rename attribute, use the svn version number (revision) of the directory to be copied as the renamed name. \n\nUser-define the renamed name with a function which will use a json object as the parameter. \n\n- info : argument of function。\n- info.name : name of the directory to be copied. \n- info.revision : current version number of the directory to be copied. \n- info.lastLog : the latest log of the target directory for storing copied directories.\n- info.ask : user input obtained from the console. \n\nSet rename as a template character string, and replace contents in the brace by corresponding attribute value in info object automatically. \n\nE.g. set rename as '{name}_{revision}'. If the name of the copied directory is trunk, and the latest version number is 13542, the copied directory is renamed as: trunk_13542. \n\nIf '{ask}' field in the attribute of rename, the console will give prompts and request the user to replace this field by files. \n\n#### svnCopy usage examples\n\n```js\nvar path = require('path');\n\ngrunt.initConfig({\n    projectDir : path.resolve(__dirname, '../'),\n    svnConfig : {\n        project : {\n            from : path.resolve(__dirname),\n            to : '../'\n        }\n    },\n    svnCopy : {\n        options : {\n            repository: '<%=svnConfig.project%>'\n        },\n        // Rename by revision of \"online/trunk\", copy \"online/trunk\" to \"online/tags/{revision}\".\n        // If project svn root path is \"https://svn.sinaapp.com/gruntsvnworkflow/1/svn-workflow/example/\"。\n        // Execute the followed task, will copy the directory : \"https://svn.sinaapp.com/gruntsvnworkflow/1/svn-workflow/example/online/trunk\"\n        // If the revision of original directory is 13542, The directory will be copied to svn svnpath:\n        // \"https://svn.sinaapp.com/gruntsvnworkflow/1/svn-workflow/example/online/tags/13542\"\n        autoTag : {\n            from : 'online/trunk',\n            to : 'online/tags'\n        },\n        // Ask for the name in console.\n        branch : {\n            question : 'Input the branch name:'.\n            rename : 'branch_{ask}',\n            from : 'dev/trunk',\n            to : 'dev/branches'\n        },\n        // Give a name by a function.\n        // The argument info give the informations for computing.\n        tagByCompute : {\n            rename : function(info){\n                var tagName = '';\n                // Compute tagName by info\n                return tagName;\n            },\n            from : 'dev/trunk',\n            to : 'dev/branches'\n        }\n    }\n});\n```\n\n```shell\ngrunt svnConfig svnCopy\n```\n\n## confirm multitask\n\n__Create a question and answer during task execution to determine whether to continue task flows.__\n\n#### msg\n\nType: `String`\n\nPrompt message\n\n#### confirm usage examples\n\n```js\ngrunt.initConfig({\n    confirm : {\n        distribute : {\n            msg : 'publish ?'\n        }\n    }\n});\n```\n\n## example\n\nA demo of gruntfile config.\n\n```js\nvar $path = require('path');\n\nmodule.exports = function(grunt) {\n\n    // Project configuration.\n    grunt.initConfig({\n        toolsDir : $path.resolve(__dirname),\n        projectDir : $path.resolve(__dirname, '../'),\n        // Clean files for example publish.\n        clean: {\n            beforePublish: [\n                'temp'\n            ]\n        },\n        // Copy files for example publish.\n        copy: {\n            forPublish: {\n                expand : true,\n                cwd : 'temp/trunk/',\n                src : '**/*',\n                dest : 'temp/online/'\n            }\n        },\n        confirm : {\n            distribute : {\n                msg : 'publish ?'\n            }\n        },\n        svnConfig : {\n            project : {\n                from : '<%=toolsDir%>',\n                to : '../'\n            }\n        },\n        svnInit : {\n            options : {\n                repository: '<%=svnConfig.project%>',\n                cwd: '<%=toolsDir%>'\n            },\n            project : {\n                map : {\n                    'dev' : {\n                        'branches' : 'folder',\n                        'tags' : 'folder',\n                        'trunk' : {\n                            'html' : 'folder',\n                            'css' : 'folder',\n                            'js' : 'folder'\n                        }\n                    },\n                    'online' : {\n                        'tags' : 'folder',\n                        'trunk' : 'folder'\n                    }\n                }\n            }\n        },\n        svnCheckout : {\n            options : {\n                repository: '<%=svnConfig.project%>',\n                cwd: '<%=projectDir%>'\n            },\n            deploy : {\n                map : {\n                    'dist' : 'online/trunk',\n                    'trunk' : 'dev/trunk'\n                }\n            },\n            prepareForPublish : {\n                cwd : '<%=toolsDir%>',\n                map : {\n                    'temp/online' : 'online/trunk',\n                    'temp/trunk' : 'dev/trunk'\n                }\n            }\n        },\n        svnCommit : {\n            options : {\n                repository: '<%=svnConfig.project%>',\n                cwd: '<%=projectDir%>'\n            },\n            publish : {\n                cwd : '<%=toolsDir%>',\n                log : '[dev/trunk]',\n                svn : 'online/trunk',\n                src : 'temp/online'\n            }\n        },\n        svnCopy : {\n            options : {\n                repository: '<%=svnConfig.project%>'\n            },\n            tagForDev : {\n                rename : function(info){\n                    grunt.config.set('svnCopy.tagForDev.revision', info.revision);\n                    return info.revision;\n                },\n                from : 'dev/trunk',\n                to : 'dev/tags'\n            },\n            tagForOnline : {\n                rename : function(info){\n                    return grunt.config.get('svnCopy.tagForDev.revision');\n                },\n                from : 'online/trunk',\n                to : 'online/tags'\n            }\n        }\n    });\n\n    grunt.loadNpmTasks('grunt-contrib-clean');\n    grunt.loadNpmTasks('grunt-contrib-copy');\n    grunt.loadNpmTasks('grunt-svn-workflow');\n\n    grunt.registerTask(\n        'deploy',\n        'Deploy development environment.',\n        [\n            'svnConfig',\n            'svnCheckout:deploy'\n        ]\n    );\n\n    grunt.registerTask(\n        'prepareForPublish',\n        'Copy, pack and compress files, things like that.',\n        [\n            'clean:beforePublish',\n            'svnConfig',\n            'svnCheckout:prepareForPublish',\n            'copy:forPublish'\n        ]\n    );\n\n    grunt.registerTask(\n        'distribute',\n        'Distribute file to online svn folder',\n        [\n            'confirm:distribute',\n            'svnCommit:publish',\n            'svnCopy:tagForDev',\n            'svnCopy:tagForOnline'\n        ]\n    );\n\n    grunt.registerTask(\n        'publish',\n        'The full publish workflow.',\n        [\n            'prepareForPublish',\n            'distribute'\n        ]\n    );\n\n    grunt.registerTask(\n        'default',\n        'The default task',\n        [\n            'deploy'\n        ]\n    );\n\n};\n```\n\n## Release History\n\n * 2016-07-18 v0.2.10 Remove peerDependencies.\n * 2015-11-20 v0.2.9 Update github id.\n * 2015-09-17 v0.2.8 Support windows cmd.\n * 2015-09-17 v0.2.6 If the copy target url is existence, will throw a fatal error.\n * 2015-08-27 v0.2.5 Provide English document.\n * 2015-08-27 v0.2.4 The \"rename\" option in svnCopy task could get return value as answer template.\n * 2015-08-26 v0.2.3 The option \"to\" of task svnConfig could be a function.\n * 2015-08-25 v0.2.2 Fix git url.\n * 2015-08-20 v0.2.1 Improve docs. Give a new example.\n * 2015-08-18 v0.2.0 Important update. Remove svnTag task, add svnCopy task, refactor all task files.\n * 2015-04-01 v0.1.2 Add log option for svnCommit task.\n * 2014-12-09 v0.1.1 Fix the bug that get an error occasionally in task running.\n * 2014-12-04 v0.1.0 The first official release, base on Grunt 0.4.X.\n\n\n\n\n","maintainers":[{"name":"pillar0514","email":"pillar0514@gmail.com"}],"time":{"modified":"2022-06-18T16:05:27.218Z","created":"2014-09-25T08:41:31.480Z","0.0.0":"2014-09-25T08:41:31.480Z","0.0.1":"2014-09-30T08:52:40.214Z","0.0.2":"2014-10-08T07:34:20.186Z","0.0.3":"2014-10-08T10:00:56.450Z","0.0.4":"2014-12-04T09:26:25.768Z","0.1.0":"2014-12-04T11:12:15.725Z","0.1.1":"2014-12-09T10:47:34.960Z","0.1.2":"2015-04-01T06:09:27.089Z","0.2.0":"2015-08-18T09:13:26.723Z","0.2.1":"2015-08-20T03:14:05.300Z","0.2.2":"2015-08-25T10:18:07.177Z","0.2.3":"2015-08-26T01:48:31.789Z","0.2.4":"2015-08-27T02:17:13.865Z","0.2.5":"2015-09-06T06:35:57.936Z","0.2.6":"2015-09-17T09:58:51.454Z","0.2.7":"2015-09-23T03:11:13.072Z","0.2.8":"2015-09-23T03:16:39.475Z","0.2.9":"2015-11-20T08:56:16.923Z","0.2.10":"2016-07-18T06:58:07.023Z"},"keywords":["grunt","svn","workflow"],"author":{"name":"Tony Liang"},"license":"MIT","readmeFilename":"README.md","description":"Manage svn folders.","homepage":"https://github.com/tabspace/grunt-svn-workflow","repository":{"type":"git","url":"git+ssh://git@github.com/tabspace/grunt-svn-workflow.git"},"bugs":{"url":"https://github.com/tabspace/grunt-svn-workflow/issues"},"users":{"wjdrmsl":true}}