mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # Licensed to the Apache Software Foundation (ASF) under one
 | |
| # or more contributor license agreements.  See the NOTICE file
 | |
| # distributed with this work for additional information
 | |
| # regarding copyright ownership.  The ASF licenses this file
 | |
| # to you under the Apache License, Version 2.0 (the
 | |
| # "License"); you may not use this file except in compliance
 | |
| # with the License.  You may obtain a copy of the License at
 | |
| #
 | |
| #   http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing,
 | |
| # software distributed under the License is distributed on an
 | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 | |
| # KIND, either express or implied.  See the License for the
 | |
| # specific language governing permissions and limitations
 | |
| # under the License.
 | |
| 
 | |
| # Var
 | |
| tmpMessageFile="${PWD}/.git-tmp-message.txt"
 | |
| 
 | |
| # Check if branch was specified
 | |
| branch=$1
 | |
| if [ -z ${branch} ]; then
 | |
|   echo "Usage: git fwd-merge branch-name"
 | |
|   echo
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| # Construct merge message
 | |
| currentBranch=$(git branch | grep "^*" | sed -e "s/^[*] //")
 | |
| echo "Merge release branch ${branch} to ${currentBranch}" > ${tmpMessageFile}
 | |
| 
 | |
| # Are you sure?
 | |
| echo "Merging release branch ***${branch}*** into ***${currentBranch}*** branch in 5 seconds. CTRL+c to abort.."
 | |
| sec=5
 | |
| while [ $sec -ge 0 ]; do
 | |
|   echo -n "${sec} "
 | |
|   sec=$((sec-1))
 | |
|   sleep 1
 | |
| done
 | |
| echo "There we go!"
 | |
| 
 | |
| # Do the actual merge
 | |
| git merge --no-ff --log -m "$(cat .git-tmp-message.txt)" ${branch}
 | |
| if [ $? -gt 0 ]; then
 | |
|   echo "ERROR: Merge failed, aborting."
 | |
|   git merge --abort
 | |
| fi
 | |
| 
 | |
| # Clean up
 | |
| rm -fr ${tmpMessageFile}
 | |
| 
 | |
| apache_remote=$(git remote -v | grep -E "git-wip-us\.apache\.org" | head -n 1 | cut -f1)
 | |
| echo "INFO: Actual diff in commits is: (running git log --pretty=oneline --abbrev-commit ${apache_remote}/${currentBranch}..${currentBranch})"
 | |
| echo
 | |
| git log --pretty=oneline --abbrev-commit ${apache_remote}/${currentBranch}..${currentBranch}
 | |
| 
 | |
| # What's next
 | |
| echo "We're done! Please double check using 'git log -p' and 'git push' when you're sure."
 |