Changeset 275635 in webkit


Ignore:
Timestamp:
Apr 7, 2021 3:25:20 PM (3 years ago)
Author:
Jonathan Bedard
Message:

[webkitscmpy] Handle multiple double-branch commits
https://bugs.webkit.org/show_bug.cgi?id=224251
<rdar://problem/76288547>

Reviewed by Dewei Zhu.

There are a few cases, namely on the safari-607-branch, where some commits where made both
on trunk and on a branch. In one notable case, two sequential commits were made this way.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn._cache_revisions): Handle multiple double-branch commits.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:

(Svn._cache_revisions): Handle multiple double-branch commits.

Location:
trunk/Tools
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r275624 r275635  
     12021-04-07  Jonathan Bedard  <jbedard@apple.com>
     2
     3        [webkitscmpy] Handle multiple double-branch commits
     4        https://bugs.webkit.org/show_bug.cgi?id=224251
     5        <rdar://problem/76288547>
     6
     7        Reviewed by Dewei Zhu.
     8
     9        There are a few cases, namely on the safari-607-branch, where some commits where made both
     10        on trunk and on a branch. In one notable case, two sequential commits were made this way.
     11
     12        * Scripts/libraries/webkitscmpy/setup.py: Bump version.
     13        * Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
     14        * Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
     15        (Svn._cache_revisions): Handle multiple double-branch commits.
     16        * Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:
     17        (Svn._cache_revisions): Handle multiple double-branch commits.
     18
    1192021-04-07  Aakash Jain  <aakash_jain@apple.com>
    220
  • trunk/Tools/Scripts/libraries/webkitscmpy/setup.py

    r275604 r275635  
    3030setup(
    3131    name='webkitscmpy',
    32     version='0.13.8',
     32    version='0.13.9',
    3333    description='Library designed to interact with git and svn repositories.',
    3434    long_description=readme(),
  • trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py

    r275604 r275635  
    4747    )
    4848
    49 version = Version(0, 13, 8)
     49version = Version(0, 13, 9)
    5050
    5151AutoInstall.register(Package('fasteners', Version(0, 15, 0)))
  • trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py

    r274080 r275635  
    166166                raise self.Exception("Failed to construct branch history for '{}'".format(branch))
    167167
    168             was_last_on_default = False
     168            default_count = 0
    169169            line = log.stdout.readline()
    170170            while line:
     
    182182                    if not is_default_branch:
    183183                        if revision in self._metadata_cache[self.default_branch]:
    184                             if was_last_on_default:
     184                            # Only handle 2 sequential cross-branch commits
     185                            if default_count > 2:
    185186                                break
    186                             was_last_on_default = True
     187                            default_count += 1
    187188                        else:
    188                             was_last_on_default = False
     189                            default_count = 0
    189190                    self._metadata_cache[branch].insert(pos, revision)
    190191                line = log.stdout.readline()
     
    193194                log.kill()
    194195
     196        if default_count:
     197            self._metadata_cache[branch] = self._metadata_cache[branch][default_count - 1:]
    195198        if self._metadata_cache[self.default_branch][0] == [0]:
    196199            self._metadata_cache['identifier'] = len(self._metadata_cache[branch])
  • trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py

    r274080 r275635  
    243243                raise self.Exception("Failed to construct branch history for '{}'".format(branch))
    244244
    245             was_last_on_default = False
     245            default_count = 0
    246246            for line in response.iter_lines():
    247247                match = self.HISTORY_RE.match(line)
     
    260260                if not is_default_branch:
    261261                    if revision in self._metadata_cache[self.default_branch]:
    262                         if was_last_on_default:
     262                        # Only handle 2 sequential cross-branch commits
     263                        if default_count > 2:
    263264                            break
    264                         was_last_on_default = True
     265                        default_count += 1
    265266                    else:
    266                         was_last_on_default = False
     267                        default_count = 0
    267268                self._metadata_cache[branch].insert(pos, revision)
    268269
     270        if default_count:
     271            self._metadata_cache[branch] = self._metadata_cache[branch][default_count - 1:]
    269272        if self._metadata_cache[self.default_branch][0] == [0]:
    270273            self._metadata_cache['identifier'] = len(self._metadata_cache[branch])
Note: See TracChangeset for help on using the changeset viewer.