diff options
Diffstat (limited to 'tool/sync_default_gems.rb')
-rwxr-xr-x | tool/sync_default_gems.rb | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/tool/sync_default_gems.rb b/tool/sync_default_gems.rb index 7c0bf1ddbd..5177204aae 100755 --- a/tool/sync_default_gems.rb +++ b/tool/sync_default_gems.rb @@ -591,28 +591,28 @@ module SyncDefaultGems system(*%w[git add yarp]) end - # Discover unmerged files - # AU: unmerged, added by us - # DU: unmerged, deleted by us - # UU: unmerged, both modified - # UA: unmerged, added by them - # AA: unmerged, both added - unmerged = pipe_readlines(%W"git status --porcelain -z") - if unmerged.empty? - # Everything was removed as `ignored_paths`. Skip this commit. + # Skip this commit if everything has been removed as `ignored_paths`. + changes = pipe_readlines(%W"git status --porcelain -z") + if changes.empty? `git reset` && `git checkout .` && `git clean -fd` puts "Skip empty commit #{sha}" next end - # For YARP, we want to handle DD: deleted by both. + # For YARP, we want to skip DD: deleted by both. if gem == "yarp" - deleted = unmerged.grep(/^DD /) + deleted = changes.grep(/^DD /) deleted.map! { |line| line.delete_prefix("DD ") } system(*%W"git rm -f --", *deleted) unless deleted.empty? end - unmerged.map! {|line| line[/\A(?:.U|[UA]A) (.*)/, 1]} + # Discover unmerged files + # AU: unmerged, added by us + # DU: unmerged, deleted by us + # UU: unmerged, both modified + # UA: unmerged, added by them + # AA: unmerged, both added + unmerged = changes.map {|line| line[/\A(?:.U|[UA]A) (.*)/, 1]} unmerged.compact! ignore, conflict = unmerged.partition {|name| ignore_file_pattern =~ name} # Reset ignored files if they conflict |