)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"8b2944d74f7c500388bbcc10f945ff744e47d383","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Compression ratio of qcow disk image is small because such type"},{"line_number":11,"context_line":"of image doesn\u0027t  allocate the whole image space to a file. It"},{"line_number":12,"context_line":"grows as data is added. But compression procedure takes many CPU"},{"line_number":13,"context_line":"time."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Iabcbbb576f7e9411310c540badb805eb1bf21bf5"},{"line_number":16,"context_line":"Closes-Bug: #1478800"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a4dcd0f_7786e2ba","line":13,"updated":"2015-08-10 09:09:18.000000000","message":"I think life is a bit more complicated than this. While it is true that raw disks images compress exceedingly well due to large ranges of zeros, a qcow2 disk image can compress significantly too. The degree of compression however will vary according to the content of the guest OS. So I think it is hard to general to say we should turn off compression with rsync","commit_id":"99e89641dd747326ccccc3c72f461b4f6655ee86"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"cbc9269fe43cb3a695dbc257023d73b295e41f62","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Marian Horban \u003cmhorban@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-09-07 07:08:50 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Rsync compression removed"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"During migration libvirt driver copies qcow image between nodes."},{"line_number":10,"context_line":"Compression ratio of qcow disk image is small because such type"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"da20952f_36875562","line":7,"updated":"2015-09-07 13:57:50.000000000","message":"please prefix with libvirt:","commit_id":"4ac228761b99921e2b0c08b654e67d1842ae26f3"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"5c6926a8501bc9c0367e83e1d82649c5ffbb69fc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Marian Horban \u003cmhorban@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-09-07 07:08:50 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Rsync compression removed"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"During migration libvirt driver copies qcow image between nodes."},{"line_number":10,"context_line":"Compression ratio of qcow disk image is small because such type"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"da20952f_76eaadd9","line":7,"in_reply_to":"da20952f_36875562","updated":"2015-09-07 14:01:43.000000000","message":"Done","commit_id":"4ac228761b99921e2b0c08b654e67d1842ae26f3"}],"nova/tests/unit/virt/libvirt/volume/test_remotefs.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"12a8b8ccfa5e34c3086a10b35dfdc4b828929a80","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                                             \u0027/home/favourite\u0027,"},{"line_number":171,"context_line":"                                             \u0027--compress\u0027,"},{"line_number":172,"context_line":"                                             on_completion\u003dNone,"},{"line_number":173,"context_line":"                                             on_execute\u003dNone)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    @mock.patch(\u0027nova.utils.execute\u0027)"},{"line_number":176,"context_line":"    def test_remote_copy_file_ssh(self, mock_execute):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_1e444472","line":173,"updated":"2015-09-02 19:48:37.000000000","message":"You need to add test for calling copy_file() with compress\u003dFalse, asserting that \u0027--compress\u0027 is not in the mocked call.","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"12a8b8ccfa5e34c3086a10b35dfdc4b828929a80","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                                             \u0027/home/favourite\u0027,"},{"line_number":171,"context_line":"                                             \u0027--compress\u0027,"},{"line_number":172,"context_line":"                                             on_completion\u003dNone,"},{"line_number":173,"context_line":"                                             on_execute\u003dNone)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    @mock.patch(\u0027nova.utils.execute\u0027)"},{"line_number":176,"context_line":"    def test_remote_copy_file_ssh(self, mock_execute):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_3e47c878","line":173,"updated":"2015-09-02 19:48:37.000000000","message":"You need to add test for calling copy_file() with compress\u003dFalse, asserting that \u0027--compress\u0027 is not in the mocked call.","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"6907bace1e3e54140ba6ff88f93aef3e466c59f5","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                                             \u0027/home/favourite\u0027,"},{"line_number":171,"context_line":"                                             \u0027--compress\u0027,"},{"line_number":172,"context_line":"                                             on_completion\u003dNone,"},{"line_number":173,"context_line":"                                             on_execute\u003dNone)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    @mock.patch(\u0027nova.utils.execute\u0027)"},{"line_number":176,"context_line":"    def test_remote_copy_file_ssh(self, mock_execute):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_100a5e20","line":173,"in_reply_to":"da20952f_1e444472","updated":"2015-09-07 11:09:25.000000000","message":"Done","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"6907bace1e3e54140ba6ff88f93aef3e466c59f5","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                                             \u0027/home/favourite\u0027,"},{"line_number":171,"context_line":"                                             \u0027--compress\u0027,"},{"line_number":172,"context_line":"                                             on_completion\u003dNone,"},{"line_number":173,"context_line":"                                             on_execute\u003dNone)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    @mock.patch(\u0027nova.utils.execute\u0027)"},{"line_number":176,"context_line":"    def test_remote_copy_file_ssh(self, mock_execute):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_701b9a73","line":173,"in_reply_to":"da20952f_3e47c878","updated":"2015-09-07 11:09:25.000000000","message":"Done","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"ff7d74e318d5e8a31d54bbc996ca40994261fece","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    @mock.patch(\u0027nova.utils.execute\u0027)"},{"line_number":188,"context_line":"    def test_remote_copy_file_ssh(self, mock_execute):"},{"line_number":189,"context_line":"        remotefs.SshDriver().copy_file(\u00271.2.3.4:/home/SpaceOdyssey\u0027,"},{"line_number":190,"context_line":"                                       \u0027/home/favourite\u0027, None, None, True)"},{"line_number":191,"context_line":"        mock_execute.assert_called_once_with(\u0027scp\u0027,"},{"line_number":192,"context_line":"                                             \u00271.2.3.4:/home/SpaceOdyssey\u0027,"},{"line_number":193,"context_line":"                                             \u0027/home/favourite\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_effa0e43","line":190,"updated":"2015-09-09 11:54:29.000000000","message":"nit: indentation moved","commit_id":"b7ad5a312a8cfbce60510f598a34da9358f25a4c"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"59945c3df919b9816a629dce0bce7869cbb3bd65","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    @mock.patch(\u0027nova.utils.execute\u0027)"},{"line_number":188,"context_line":"    def test_remote_copy_file_ssh(self, mock_execute):"},{"line_number":189,"context_line":"        remotefs.SshDriver().copy_file(\u00271.2.3.4:/home/SpaceOdyssey\u0027,"},{"line_number":190,"context_line":"                                       \u0027/home/favourite\u0027, None, None, True)"},{"line_number":191,"context_line":"        mock_execute.assert_called_once_with(\u0027scp\u0027,"},{"line_number":192,"context_line":"                                             \u00271.2.3.4:/home/SpaceOdyssey\u0027,"},{"line_number":193,"context_line":"                                             \u0027/home/favourite\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_07288232","line":190,"in_reply_to":"da20952f_effa0e43","updated":"2015-09-09 16:57:58.000000000","message":"I think, it\u0027s actually for better :)","commit_id":"b7ad5a312a8cfbce60510f598a34da9358f25a4c"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"c391719fad564c6af6844c476290c34b36e4817a","unresolved":false,"context_lines":[{"line_number":6697,"context_line":"                        instance, process.pid)"},{"line_number":6698,"context_line":"                    on_completion \u003d lambda process: self.job_tracker.\\"},{"line_number":6699,"context_line":"                        remove_job(instance, process.pid)"},{"line_number":6700,"context_line":"                    compression \u003d False if info[\u0027type\u0027] \u003d\u003d \u0027qcow2\u0027 else True"},{"line_number":6701,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest,"},{"line_number":6702,"context_line":"                                             on_execute\u003don_execute,"},{"line_number":6703,"context_line":"                                             on_completion\u003don_completion,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_fd75ed31","line":6700,"updated":"2015-09-02 11:41:12.000000000","message":"nit: Maybe it would be better just\n\n compression \u003d info[\u0027type\u0027] !\u003d \u0027qcow2\u0027","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"12a8b8ccfa5e34c3086a10b35dfdc4b828929a80","unresolved":false,"context_lines":[{"line_number":6697,"context_line":"                        instance, process.pid)"},{"line_number":6698,"context_line":"                    on_completion \u003d lambda process: self.job_tracker.\\"},{"line_number":6699,"context_line":"                        remove_job(instance, process.pid)"},{"line_number":6700,"context_line":"                    compression \u003d False if info[\u0027type\u0027] \u003d\u003d \u0027qcow2\u0027 else True"},{"line_number":6701,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest,"},{"line_number":6702,"context_line":"                                             on_execute\u003don_execute,"},{"line_number":6703,"context_line":"                                             on_completion\u003don_completion,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_b918d276","line":6700,"in_reply_to":"da20952f_50d63228","updated":"2015-09-02 19:48:37.000000000","message":"I would prefer to see a constant containing the names of the types that do not get compressed, and testing to see if this one\u0027s type is in the list. Example: add higher up in the code:\n\n    NO_COMPRESSION_TYPES \u003d [\u0027qcow2\u0027]\n\nand change this line to:\n\n    compression \u003d info[\u0027type\u0027] not in NO_COMPRESSION_TYPES\n\nThis way if it is determined that another type shouldn\u0027t be compressed, you just have to add it to the constant, and the logic doesn\u0027t have to change.","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"3125351c13283ab1536942ba3ad6509812c4cb5f","unresolved":false,"context_lines":[{"line_number":6697,"context_line":"                        instance, process.pid)"},{"line_number":6698,"context_line":"                    on_completion \u003d lambda process: self.job_tracker.\\"},{"line_number":6699,"context_line":"                        remove_job(instance, process.pid)"},{"line_number":6700,"context_line":"                    compression \u003d False if info[\u0027type\u0027] \u003d\u003d \u0027qcow2\u0027 else True"},{"line_number":6701,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest,"},{"line_number":6702,"context_line":"                                             on_execute\u003don_execute,"},{"line_number":6703,"context_line":"                                             on_completion\u003don_completion,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_50d63228","line":6700,"in_reply_to":"da20952f_8c02806e","updated":"2015-09-02 16:43:07.000000000","message":"+1)","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"6907bace1e3e54140ba6ff88f93aef3e466c59f5","unresolved":false,"context_lines":[{"line_number":6697,"context_line":"                        instance, process.pid)"},{"line_number":6698,"context_line":"                    on_completion \u003d lambda process: self.job_tracker.\\"},{"line_number":6699,"context_line":"                        remove_job(instance, process.pid)"},{"line_number":6700,"context_line":"                    compression \u003d False if info[\u0027type\u0027] \u003d\u003d \u0027qcow2\u0027 else True"},{"line_number":6701,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest,"},{"line_number":6702,"context_line":"                                             on_execute\u003don_execute,"},{"line_number":6703,"context_line":"                                             on_completion\u003don_completion,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_b097f246","line":6700,"in_reply_to":"da20952f_b918d276","updated":"2015-09-07 11:09:25.000000000","message":"Done","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"6907bace1e3e54140ba6ff88f93aef3e466c59f5","unresolved":false,"context_lines":[{"line_number":6697,"context_line":"                        instance, process.pid)"},{"line_number":6698,"context_line":"                    on_completion \u003d lambda process: self.job_tracker.\\"},{"line_number":6699,"context_line":"                        remove_job(instance, process.pid)"},{"line_number":6700,"context_line":"                    compression \u003d False if info[\u0027type\u0027] \u003d\u003d \u0027qcow2\u0027 else True"},{"line_number":6701,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest,"},{"line_number":6702,"context_line":"                                             on_execute\u003don_execute,"},{"line_number":6703,"context_line":"                                             on_completion\u003don_completion,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_9098ae76","line":6700,"in_reply_to":"da20952f_fd75ed31","updated":"2015-09-07 11:09:25.000000000","message":"Done","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"b39d82f94e38ccd8c30b3fa211d48a63aad989a5","unresolved":false,"context_lines":[{"line_number":6697,"context_line":"                        instance, process.pid)"},{"line_number":6698,"context_line":"                    on_completion \u003d lambda process: self.job_tracker.\\"},{"line_number":6699,"context_line":"                        remove_job(instance, process.pid)"},{"line_number":6700,"context_line":"                    compression \u003d False if info[\u0027type\u0027] \u003d\u003d \u0027qcow2\u0027 else True"},{"line_number":6701,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest,"},{"line_number":6702,"context_line":"                                             on_execute\u003don_execute,"},{"line_number":6703,"context_line":"                                             on_completion\u003don_completion,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_8c02806e","line":6700,"in_reply_to":"da20952f_fd75ed31","updated":"2015-09-02 12:40:04.000000000","message":"yep","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"5dac4a3ed9a63d8d81282cad2ddb4dd9fff7a0a1","unresolved":false,"context_lines":[{"line_number":424,"context_line":"MIN_QEMU_S390_VERSION \u003d (2, 3, 0)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"# Names of the types that do not get compressed during migration"},{"line_number":427,"context_line":"NO_COMPRESSION_TYPES \u003d (\u0027qcow2\u0027,)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"class LibvirtDriver(driver.ComputeDriver):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_814cdec8","line":427,"updated":"2015-09-07 12:35:39.000000000","message":"is the comma in the end ok?","commit_id":"4ac228761b99921e2b0c08b654e67d1842ae26f3"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"9bb71995e16228c8d4accf2a056c2098c1cb05b7","unresolved":false,"context_lines":[{"line_number":424,"context_line":"MIN_QEMU_S390_VERSION \u003d (2, 3, 0)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"# Names of the types that do not get compressed during migration"},{"line_number":427,"context_line":"NO_COMPRESSION_TYPES \u003d (\u0027qcow2\u0027,)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"class LibvirtDriver(driver.ComputeDriver):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_b66fe590","line":427,"in_reply_to":"da20952f_814cdec8","updated":"2015-09-07 13:59:08.000000000","message":"This is python hack to make tuple with one element inside","commit_id":"4ac228761b99921e2b0c08b654e67d1842ae26f3"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"59945c3df919b9816a629dce0bce7869cbb3bd65","unresolved":false,"context_lines":[{"line_number":424,"context_line":"MIN_QEMU_S390_VERSION \u003d (2, 3, 0)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"# Names of the types that do not get compressed during migration"},{"line_number":427,"context_line":"NO_COMPRESSION_TYPES \u003d (\u0027qcow2\u0027,)"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"class LibvirtDriver(driver.ComputeDriver):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_eae18efd","line":427,"updated":"2015-09-09 16:57:58.000000000","message":"nit: would be nice to see a new unit test added specifically for this","commit_id":"b7ad5a312a8cfbce60510f598a34da9358f25a4c"}],"nova/virt/libvirt/utils.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"12a8b8ccfa5e34c3086a10b35dfdc4b828929a80","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    :param host: Remote host"},{"line_number":195,"context_line":"    :param receive: Reverse the rsync direction"},{"line_number":196,"context_line":"    :param on_execute: Callback method to store pid of process in cache"},{"line_number":197,"context_line":"    :param on_completion: Callback method to remove pid of process from cache"},{"line_number":198,"context_line":"    \"\"\""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    if not host:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_de89eccb","line":197,"updated":"2015-09-02 19:48:37.000000000","message":"You need to add the new parameter here","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"6907bace1e3e54140ba6ff88f93aef3e466c59f5","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    :param host: Remote host"},{"line_number":195,"context_line":"    :param receive: Reverse the rsync direction"},{"line_number":196,"context_line":"    :param on_execute: Callback method to store pid of process in cache"},{"line_number":197,"context_line":"    :param on_completion: Callback method to remove pid of process from cache"},{"line_number":198,"context_line":"    \"\"\""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    if not host:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_30b8c2c7","line":197,"in_reply_to":"da20952f_de89eccb","updated":"2015-09-07 11:09:25.000000000","message":"Done","commit_id":"1192d930aad5c9325bd2d3f131554562da447426"}],"nova/virt/libvirt/volume/remotefs.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"8b2944d74f7c500388bbcc10f945ff744e47d383","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                      on_execute\u003don_execute, on_completion\u003don_completion)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def copy_file(self, src, dst, on_execute, on_completion):"},{"line_number":335,"context_line":"        utils.execute(\u0027rsync\u0027, \u0027--sparse\u0027, src, dst,"},{"line_number":336,"context_line":"                      on_execute\u003don_execute, on_completion\u003don_completion)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_17aafe19","line":335,"updated":"2015-08-10 09:09:18.000000000","message":"Isn\u0027t this codepath used in raw disk image scenario too.","commit_id":"99e89641dd747326ccccc3c72f461b4f6655ee86"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"828c65c3273cadbd66c4302112fe48ebacc3559d","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                      on_execute\u003don_execute, on_completion\u003don_completion)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def copy_file(self, src, dst, on_execute, on_completion):"},{"line_number":335,"context_line":"        utils.execute(\u0027rsync\u0027, \u0027--sparse\u0027, src, dst,"},{"line_number":336,"context_line":"                      on_execute\u003don_execute, on_completion\u003don_completion)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_3c305b9e","line":335,"updated":"2015-08-08 09:49:06.000000000","message":"we could probably make this conditional based on the argument passed\n\n+\n\nit would be nice to see some benchmarks","commit_id":"99e89641dd747326ccccc3c72f461b4f6655ee86"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"59945c3df919b9816a629dce0bce7869cbb3bd65","unresolved":false,"context_lines":[{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    def copy_file(self, src, dst, on_execute, on_completion, compression):"},{"line_number":336,"context_line":"        args \u003d [\u0027rsync\u0027, \u0027--sparse\u0027, src, dst]"},{"line_number":337,"context_line":"        if compression:"},{"line_number":338,"context_line":"            args.append(\u0027--compress\u0027)"},{"line_number":339,"context_line":"        utils.execute(*args,"},{"line_number":340,"context_line":"                      on_execute\u003don_execute, on_completion\u003don_completion)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_a7cd1688","line":337,"updated":"2015-09-09 16:57:58.000000000","message":"nit: appending an optional argument after positional ones isn\u0027t pretty, but looks like it works correctly (at least on my rsync 3.1.1)","commit_id":"b7ad5a312a8cfbce60510f598a34da9358f25a4c"}]}
