)]}'
{"releasenotes/notes/git-remote-refs-71bd2fc2bb05155d.yaml":[{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"03c8df32a8f23f16327a97a75a54e26982451bc2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    This allows jobs to determine the commits that are part of a change, which"},{"line_number":8,"context_line":"    was not possible before. The remote URL is set to a bogus value which"},{"line_number":9,"context_line":"    won\u0027t work with git command that need to talk to the remote repository."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"bf659307_164a6954","line":9,"range":{"start_line":9,"start_character":24,"end_line":9,"end_character":31},"updated":"2018-04-09 09:14:32.000000000","message":"commands","commit_id":"135b75af1603758cedc3ab623b038b53dfd4f3ba"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"4fd77d231958b5f482ba8cc7d99b50678ae6a6c5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    This allows jobs to determine the commits that are part of a change, which"},{"line_number":8,"context_line":"    was not possible before. The remote URL is set to a bogus value which"},{"line_number":9,"context_line":"    won\u0027t work with git command that need to talk to the remote repository."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"bf659307_f6eb350f","line":9,"range":{"start_line":9,"start_character":24,"end_line":9,"end_character":31},"in_reply_to":"bf659307_164a6954","updated":"2018-04-09 09:16:45.000000000","message":"Done","commit_id":"135b75af1603758cedc3ab623b038b53dfd4f3ba"}],"zuul/executor/server.py":[{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"943760c3315840683aaa3cc8269e46b21dd615c4","unresolved":false,"context_lines":[{"line_number":722,"context_line":"        # canonical name. This allows tools to use the remote to"},{"line_number":723,"context_line":"        # determine which commits are part of the current change."},{"line_number":724,"context_line":"        for name, repo in repos.items():"},{"line_number":725,"context_line":"            repo.setRemoteUrl(name)"},{"line_number":726,"context_line":""},{"line_number":727,"context_line":"        # This prepares each playbook and the roles needed for each."},{"line_number":728,"context_line":"        self.preparePlaybooks(args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_360aac78","line":725,"range":{"start_line":725,"start_character":30,"end_line":725,"end_character":34},"updated":"2018-02-21 20:33:47.000000000","message":"I\u0027d prefer some really bogus url (e.g. file:///dev/null) which instantaneously returns a clear error in case the user tries to do things like fetch/push with the remote. Using the name could potentially lead to relative path collisions with other repos in the workspace.","commit_id":"36239a7e1cc415272a5e0340cab9143fa63b2b85"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"7712c184d0bb730d124e5149baaa662ae3a5f9fa","unresolved":false,"context_lines":[{"line_number":722,"context_line":"        # canonical name. This allows tools to use the remote to"},{"line_number":723,"context_line":"        # determine which commits are part of the current change."},{"line_number":724,"context_line":"        for name, repo in repos.items():"},{"line_number":725,"context_line":"            repo.setRemoteUrl(name)"},{"line_number":726,"context_line":""},{"line_number":727,"context_line":"        # This prepares each playbook and the roles needed for each."},{"line_number":728,"context_line":"        self.preparePlaybooks(args)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_2be31eda","line":725,"range":{"start_line":725,"start_character":30,"end_line":725,"end_character":34},"in_reply_to":"3fa0c359_360aac78","updated":"2018-02-22 11:16:29.000000000","message":"Done","commit_id":"36239a7e1cc415272a5e0340cab9143fa63b2b85"}],"zuul/merger/merger.py":[{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"096a20852ebaa0f3b8f341e241fd4f2e0073785c","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        obj \u003d git.objects.Object.new_from_sha(repo, binsha)"},{"line_number":240,"context_line":"        git.refs.Reference.create(repo, path, obj, force\u003dTrue)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def setRefs(self, refs):"},{"line_number":243,"context_line":"        repo \u003d self.createRepoObject()"},{"line_number":244,"context_line":"        for path, hexsha in refs.items():"},{"line_number":245,"context_line":"            self.setRef(path, hexsha, repo)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def setRemoteRef(self, branch, rev):"},{"line_number":248,"context_line":"        repo \u003d self.createRepoObject()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_0bb5fb31","line":245,"range":{"start_line":242,"start_character":0,"end_line":245,"end_character":43},"updated":"2018-02-22 11:33:05.000000000","message":"What\u0027s the reason of changing setRefs? I don\u0027t see the place where the new changes use this. Further the cleanup of unlisted paths should not be removed as this can have unwanted side effects. If this method really needs to be changed we need a switch to skip the cleanup.","commit_id":"7406b97ff6827c07e49a1beaea6ee80bc8764e11"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"0cf2f8bf152ac637548f2289e5f71b19fb3b906c","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        obj \u003d git.objects.Object.new_from_sha(repo, binsha)"},{"line_number":240,"context_line":"        git.refs.Reference.create(repo, path, obj, force\u003dTrue)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def setRefs(self, refs):"},{"line_number":243,"context_line":"        repo \u003d self.createRepoObject()"},{"line_number":244,"context_line":"        for path, hexsha in refs.items():"},{"line_number":245,"context_line":"            self.setRef(path, hexsha, repo)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def setRemoteRef(self, branch, rev):"},{"line_number":248,"context_line":"        repo \u003d self.createRepoObject()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_cb8f1321","line":245,"range":{"start_line":242,"start_character":0,"end_line":245,"end_character":43},"in_reply_to":"3fa0c359_0bb5fb31","updated":"2018-02-22 11:46:37.000000000","message":"Otherwise it will delete all remote refs via mergeChanges() -\u003e _mergeItem() -\u003e _restoreRepoState() -\u003e setRefs() -\u003e setRef()\n\nI think I can improve this to only keep the related remotes.","commit_id":"7406b97ff6827c07e49a1beaea6ee80bc8764e11"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"0cc91145a26149e149969b6a41f52971e4861e7d","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        self.speed_limit \u003d speed_limit"},{"line_number":396,"context_line":"        self.speed_time \u003d speed_time"},{"line_number":397,"context_line":"        self.cache_root \u003d cache_root"},{"line_number":398,"context_line":"        self.execution_context \u003d execution_context"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    def _addProject(self, hostname, project_name, url, sshkey):"},{"line_number":401,"context_line":"        repo \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_71e6ecb2","line":398,"range":{"start_line":398,"start_character":8,"end_line":398,"end_character":50},"updated":"2018-02-22 13:32:44.000000000","message":"nit: you might want to explain what is meant by execution context","commit_id":"879e2f9d023dbbf39cd258f56446bbcad72124e4"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"ad182a3f74f482996f7c526397948e52ab5183cc","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        self.speed_limit \u003d speed_limit"},{"line_number":396,"context_line":"        self.speed_time \u003d speed_time"},{"line_number":397,"context_line":"        self.cache_root \u003d cache_root"},{"line_number":398,"context_line":"        self.execution_context \u003d execution_context"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    def _addProject(self, hostname, project_name, url, sshkey):"},{"line_number":401,"context_line":"        repo \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_7c1ec35f","line":398,"range":{"start_line":398,"start_character":8,"end_line":398,"end_character":50},"in_reply_to":"3fa0c359_71e6ecb2","updated":"2018-02-22 13:42:40.000000000","message":"Done","commit_id":"879e2f9d023dbbf39cd258f56446bbcad72124e4"}]}
