@ -1,15 +1,40 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					#!/bin/bash  
					 
					 
					 
					#!/bin/bash -e  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					set  -e 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					DIR = " $( cd  " $( dirname " ${ BASH_SOURCE [0] } " ) "  >/dev/null &&  pwd ) "  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					cd  $DIR  
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					SRC = /tmp/openpilot/ 
					 
					 
					 
					SRC = /tmp/openpilot/ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					SRC_CLONE = /tmp/openpilot-clone/ 
					 
					 
					 
					SRC_CLONE = /tmp/openpilot-clone/ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					OUT = /tmp/openpilot-tiny/ 
					 
					 
					 
					OUT = /tmp/openpilot-tiny/ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					LOG_FILE = $DIR /git-rewrite-log-$( date +"%Y-%m-%dT%H:%M:%S%z" ) .txt 
					 
					 
					 
					REWRITE_IGNORE_BRANCHES = (  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					exec  > >( tee -a " $LOG_FILE " )  2>& 1  
					 
					 
					 
					  dashcam3  
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  devel  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  master-ci  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  nightly  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  release2  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  release3  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  release3-staging  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					)  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					VALIDATE_IGNORE_FILES = (  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  ".github/ISSUE_TEMPLATE/bug_report.md"   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  ".github/pull_request_template.md"   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					)  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					DIR = " $( cd  " $( dirname " ${ BASH_SOURCE [0] } " ) "  >/dev/null &&  pwd ) "  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					cd  $DIR  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					LOGS_DIR = $DIR /git-rewrite-$( date +"%Y-%m-%dT%H:%M:%S%z" )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					mkdir -p $LOGS_DIR   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					GIT_REWRITE_LOG = $LOGS_DIR /git-rewrite-log.txt 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					BRANCH_DIFF_LOG = $LOGS_DIR /branch-diff-log.txt 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					COMMIT_DIFF_LOG = $LOGS_DIR /commit-diff-log.txt 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					START_TIME = $( date +%s)  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					exec  > >( while  IFS =  read  -r line;  do  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  CURRENT_TIME = $( date +%s)   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  ELAPSED_TIME = $(( CURRENT_TIME -  START_TIME))   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  echo  " [ ${ ELAPSED_TIME } s]  $line "   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					done  |  tee -a " $GIT_REWRITE_LOG " )  2>& 1  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# INSTALL git-filter-repo  
					 
					 
					 
					# INSTALL git-filter-repo  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					if  [  ! -f /tmp/git-filter-repo ] ;  then  
					 
					 
					 
					if  [  ! -f /tmp/git-filter-repo ] ;  then  
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -40,7 +65,7 @@ if [ ! -d $SRC ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  git push --prune $ARCHIVE_REPO  +refs/heads/*:refs/heads/* # 956.39 MiB (110725 objects)   
					 
					 
					 
					  git push --prune $ARCHIVE_REPO  +refs/heads/*:refs/heads/* # 956.39 MiB (110725 objects)   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  git push --prune $ARCHIVE_REPO  +refs/tags/*:refs/tags/* # 1.75 GiB (21694 objects)   
					 
					 
					 
					  git push --prune $ARCHIVE_REPO  +refs/tags/*:refs/tags/* # 1.75 GiB (21694 objects)   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # git push --mirror $ARCHIVE_REPO || true # fails to push refs/pull/* (deny updating a hidden ref) for pull requests   
					 
					 
					 
					  # git push --mirror $ARCHIVE_REPO || true # fails to push refs/pull/* (deny updating a hidden ref) for pull requests   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # we fail and continue - more reading: https://stackoverflow.com/a/34266401/639708   
					 
					 
					 
					  # we fail and continue - more reading: https://stackoverflow.com/a/34266401/639708 and https://blog.plataformatec.com.br/2013/05/how-to-properly-mirror-a-git-repository/    
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					fi  
					 
					 
					 
					fi  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# REWRITE master and tags  
					 
					 
					 
					# REWRITE master and tags  
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -52,7 +77,7 @@ if [ ! -d $SRC_CLONE ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  "Checking out old history..."   
					 
					 
					 
					  echo  "Checking out old history..."   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  git checkout tags/v0.7.1  
					 
					 
					 
					  git checkout tags/v0.7.1 > /dev/null 2>& 1    
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					  # checkout as main, since we need master ref later   
					 
					 
					 
					  # checkout as main, since we need master ref later   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  git checkout -b main  
					 
					 
					 
					  git checkout -b main  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -60,22 +85,26 @@ if [ ! -d $SRC_CLONE ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # rm these so we don't get conflicts later   
					 
					 
					 
					  # rm these so we don't get conflicts later   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  git rm -r cereal opendbc panda selfdrive/ui/ui > /dev/null  
					 
					 
					 
					  git rm -r cereal opendbc panda selfdrive/ui/ui > /dev/null  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  git commit -m "removed conflicting files"   
					 
					 
					 
					  git commit -m "removed conflicting files"  > /dev/null   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # skip-smudge to get rid of some lfs errors that it can't find the reference of some lfs files   
					 
					 
					 
					  # skip-smudge to get rid of some lfs errors that it can't find the reference of some lfs files   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # we don't care about fetching/pushing lfs right now   
					 
					 
					 
					  # we don't care about fetching/pushing lfs right now   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  git lfs install --skip-smudge --local  
					 
					 
					 
					  git lfs install --skip-smudge --local  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # squash initial setup commits   
					 
					 
					 
					  # squash initial setup commits   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  git cherry-pick -n -X theirs 6c33a5c..59b3d06  
					 
					 
					 
					  git cherry-pick -n -X theirs 6c33a5c..59b3d06 > /dev/null  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					  git commit -m "switching to master"  -m " $( git log --reverse --format= %B 6c33a5c..59b3d06) "   
					 
					 
					 
					  git commit -m "switching to master"  > /dev/null  
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  # squash the two commits   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  git reset --soft HEAD~2  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  git commit -m "switching to master"  -m " $( git log --reverse --format= %B 6c33a5c..59b3d06) "  -m "removed conflicting files"  > /dev/null  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # get commits we want to cherry-pick   
					 
					 
					 
					  # get commits we want to cherry-pick   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # will start with the next commit after #59b3d06 tools is local now   
					 
					 
					 
					  # will start with the next commit after #59b3d06 tools is local now   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  COMMITS = $( git rev-list --reverse 59b3d06..master)   
					 
					 
					 
					  COMMITS = $( git rev-list --reverse 59b3d06..master)   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # we need this for logging   
					 
					 
					 
					  # we need this for logging   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  TOTAL_COMMITS = $( echo  $COMMITS  |  wc -w)   
					 
					 
					 
					  TOTAL_COMMITS = $( echo  $COMMITS  |  wc -w |  xargs )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					  CURRENT_COMMIT_NUMBER = 0   
					 
					 
					 
					  CURRENT_COMMIT_NUMBER = 0   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # empty this file   
					 
					 
					 
					  # empty this file   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -85,7 +114,8 @@ if [ ! -d $SRC_CLONE ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  for  COMMIT in $COMMITS ;  do   
					 
					 
					 
					  for  COMMIT in $COMMITS ;  do   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      CURRENT_COMMIT_NUMBER = $(( CURRENT_COMMIT_NUMBER +  1 ))   
					 
					 
					 
					      CURRENT_COMMIT_NUMBER = $(( CURRENT_COMMIT_NUMBER +  1 ))   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      echo  -ne " [ $CURRENT_COMMIT_NUMBER / $TOTAL_COMMITS ] Cherry-picking commit:  $COMMIT " \\ r  
					 
					 
					 
					      # echo -ne "[$CURRENT_COMMIT_NUMBER/$TOTAL_COMMITS] Cherry-picking commit: $COMMIT"\\r   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      echo  " [ $CURRENT_COMMIT_NUMBER / $TOTAL_COMMITS ] Cherry-picking commit:  $COMMIT "   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      # set environment variables to preserve author/committer and dates   
					 
					 
					 
					      # set environment variables to preserve author/committer and dates   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      export  GIT_AUTHOR_NAME = $( git show -s --format= '%an'  $COMMIT )   
					 
					 
					 
					      export  GIT_AUTHOR_NAME = $( git show -s --format= '%an'  $COMMIT )   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -119,6 +149,12 @@ if [ ! -d $SRC_CLONE ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        # append the old commit ID to the commit message   
					 
					 
					 
					        # append the old commit ID to the commit message   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        git commit --amend -m " $( git log -1 --pretty= %B) "  -m " Former-commit-id:  $COMMIT "  > /dev/null  
					 
					 
					 
					        git commit --amend -m " $( git log -1 --pretty= %B) "  -m " Former-commit-id:  $COMMIT "  > /dev/null  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      fi   
					 
					 
					 
					      fi   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    # prune every 3000 commits to avoid gc errors   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    if  [  $(( CURRENT_COMMIT_NUMBER %  3000 ))  -eq 0  ] ;  then   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      echo  "Pruning repo..."   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      git gc  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    fi   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  done   
					 
					 
					 
					  done   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  "Rewriting tags..."   
					 
					 
					 
					  echo  "Rewriting tags..."   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -137,7 +173,7 @@ if [ ! -d $SRC_CLONE ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      NEW_COMMIT = $OLD_COMMIT   
					 
					 
					 
					      NEW_COMMIT = $OLD_COMMIT   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    fi   
					 
					 
					 
					    fi   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    printf  "Rewriting tag %s from commit %s\n"  " $TAG "  " $NEW_COMMIT "   
					 
					 
					 
					    echo  " Rewriting tag  $TAG  from commit  $NEW_COMMIT "   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    git tag -f " $TAG "  " $NEW_COMMIT "   
					 
					 
					 
					    git tag -f " $TAG "  " $NEW_COMMIT "   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  done  < " $DIR /tag-commit-map.txt "   
					 
					 
					 
					  done  < " $DIR /tag-commit-map.txt "   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -153,19 +189,20 @@ if [ ! -d $SRC_CLONE ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					fi  
					 
					 
					 
					fi  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# REWRITE branches based on master  
					 
					 
					 
					# REWRITE branches based on master  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					if  [  ! -f " $SRC_CLONE /branch-diff.txt  "  ] ;  then  
					 
					 
					 
					if  [  ! -f " $SRC_CLONE /rewrite-branches-done  "  ] ;  then  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					  cd  $SRC_CLONE   
					 
					 
					 
					  cd  $SRC_CLONE   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  > rewrite-branches-done  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # empty file   
					 
					 
					 
					  # empty file   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  > branch-diff.txt   
					 
					 
					 
					  > $BRANCH_DIFF_LOG   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  "Rewriting branches based on master..."   
					 
					 
					 
					  echo  "Rewriting branches based on master..."   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # will store raw diffs here, if exist   
					 
					 
					 
					  # will store raw diffs here, if exist   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  mkdir -p differences  
					 
					 
					 
					  mkdir -p differences  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # get a list of all branches except master   
					 
					 
					 
					  # get a list of all branches except master and REWRITE_IGNORE_BRANCHES    
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					  BRANCHES = $( git branch -r |  grep -v ' -> '  |  sed 's/origin\///'  |  grep -v '^master$' )   
					 
					 
					 
					  BRANCHES = $( git branch -r |  grep -v ' -> '  |  sed 's/.* origin\///'  |  grep -v '^master$'  |  grep -v -f <( echo  " ${ REWRITE_IGNORE_BRANCHES [*] } "  |  tr ' '  '\n' )  )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  for  BRANCH in $BRANCHES ;  do   
					 
					 
					 
					  for  BRANCH in $BRANCHES ;  do   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    # check if the branch is based on master history   
					 
					 
					 
					    # check if the branch is based on master history   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -176,7 +213,7 @@ if [ ! -f "$SRC_CLONE/branch-diff.txt" ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      # create a new branch based on the new master   
					 
					 
					 
					      # create a new branch based on the new master   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      NEW_MERGE_BASE = $( grep " ^ $MERGE_BASE   "  "commit-map.txt"  |  awk '{print $2}' )   
					 
					 
					 
					      NEW_MERGE_BASE = $( grep " ^ $MERGE_BASE   "  "commit-map.txt"  |  awk '{print $2}' )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      if  [  -z " $NEW_MERGE_BASE "  ] ;  then   
					 
					 
					 
					      if  [  -z " $NEW_MERGE_BASE "  ] ;  then   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        echo  " Error: could not find new merge base for branch  $BRANCH "  >> branch-diff.txt   
					 
					 
					 
					        echo  " Error: could not find new merge base for branch  $BRANCH "  >> $BRANCH_DIFF_LOG   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					        continue   
					 
					 
					 
					        continue   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      fi   
					 
					 
					 
					      fi   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      git checkout -b ${ BRANCH } _new $NEW_MERGE_BASE   
					 
					 
					 
					      git checkout -b ${ BRANCH } _new $NEW_MERGE_BASE   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -208,8 +245,8 @@ if [ ! -f "$SRC_CLONE/branch-diff.txt" ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            echo  " $COMMIT  EMPTY "  >> commit-map.txt  
					 
					 
					 
					            echo  " $COMMIT  EMPTY "  >> commit-map.txt  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					          else   
					 
					 
					 
					          else   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            # handle other errors or conflicts   
					 
					 
					 
					            # handle other errors or conflicts   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            echo  " Cherry-pick of  ${ BRANCH }  branch failed. Removing branch upstream... "  >> branch-diff.txt   
					 
					 
					 
					            echo  " Cherry-pick of  ${ BRANCH }  branch failed. Removing branch upstream... "  >> $BRANCH_DIFF_LOG   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					            echo  " $GIT_OUTPUT "  > " differences /branch-${ BRANCH } "   
					 
					 
					 
					            echo  " $GIT_OUTPUT "  > " $LOGS_DIR  /branch-${ BRANCH } "   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					            git cherry-pick --abort  
					 
					 
					 
					            git cherry-pick --abort  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            git push --delete origin ${ BRANCH }   
					 
					 
					 
					            git push --delete origin ${ BRANCH }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            HAS_ERROR = 1   
					 
					 
					 
					            HAS_ERROR = 1   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -239,28 +276,24 @@ if [ ! -f "$SRC_CLONE/branch-diff.txt" ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      git checkout master > /dev/null  
					 
					 
					 
					      git checkout master > /dev/null  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      git branch -D ${ BRANCH } _new > /dev/null  
					 
					 
					 
					      git branch -D ${ BRANCH } _new > /dev/null  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    else   
					 
					 
					 
					    else   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      # echo "Skipping branch $BRANCH as it's not based on master history" >> branch-diff.txt   
					 
					 
					 
					      echo  " Deleting branch  $BRANCH  as it's not based on master history "  >> $BRANCH_DIFF_LOG   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					       echo  " Deleting branch  $BRANCH  as it's not based on master history "  >> branch-diff.txt  
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					      git push --delete origin ${ BRANCH }   
					 
					 
					 
					      git push --delete origin ${ BRANCH }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    fi   
					 
					 
					 
					    fi   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  done   
					 
					 
					 
					  done   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					fi  
					 
					 
					 
					fi  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# VALIDATE cherry-pick  
					 
					 
					 
					# VALIDATE cherry-pick  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					if  [  ! -f " $SRC_CLONE /commit-diff.txt  "  ] ;  then  
					 
					 
					 
					if  [  ! -f " $SRC_CLONE /validation-done  "  ] ;  then  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					  cd  $SRC_CLONE   
					 
					 
					 
					  cd  $SRC_CLONE   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  > validation-done  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  TOTAL_COMMITS = $( grep -cve '^\s*$'  commit-map.txt)   
					 
					 
					 
					  TOTAL_COMMITS = $( grep -cve '^\s*$'  commit-map.txt)   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  CURRENT_COMMIT_NUMBER = 0   
					 
					 
					 
					  CURRENT_COMMIT_NUMBER = 0   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  COUNT_SAME = 0   
					 
					 
					 
					  COUNT_SAME = 0   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  COUNT_DIFF = 0   
					 
					 
					 
					  COUNT_DIFF = 0   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  VALIDATE_IGNORE_FILES = (   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    ".github/ISSUE_TEMPLATE/bug_report.md"   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    ".github/pull_request_template.md"   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # empty file   
					 
					 
					 
					  # empty file   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  > commit-diff.txt   
					 
					 
					 
					  > $COMMIT_DIFF_LOG   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  "Validating commits..."   
					 
					 
					 
					  echo  "Validating commits..."   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -273,7 +306,7 @@ if [ ! -f "$SRC_CLONE/commit-diff.txt" ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      continue   
					 
					 
					 
					      continue   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    fi   
					 
					 
					 
					    fi   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  [  " $OLD_COMMIT "  = =  "BRANCH"  ] ;  then   
					 
					 
					 
					    if  [  " $OLD_COMMIT "  = =  "BRANCH"  ] ;  then   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      echo  " Branch  ${ NEW_COMMIT }  below: "  >> commit-diff.txt   
					 
					 
					 
					      echo  " Branch  ${ NEW_COMMIT }  below: "  >> $COMMIT_DIFF_LOG   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					      continue   
					 
					 
					 
					      continue   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    fi   
					 
					 
					 
					    fi   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    CURRENT_COMMIT_NUMBER = $(( CURRENT_COMMIT_NUMBER +  1 ))   
					 
					 
					 
					    CURRENT_COMMIT_NUMBER = $(( CURRENT_COMMIT_NUMBER +  1 ))   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -283,7 +316,8 @@ if [ ! -f "$SRC_CLONE/commit-diff.txt" ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    OLD_DATE = $( git show -s --format= '%cd'  $OLD_COMMIT )   
					 
					 
					 
					    OLD_DATE = $( git show -s --format= '%cd'  $OLD_COMMIT )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    NEW_DATE = $( git show -s --format= '%cd'  $NEW_COMMIT )   
					 
					 
					 
					    NEW_DATE = $( git show -s --format= '%cd'  $NEW_COMMIT )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    echo  -ne " [ $CURRENT_COMMIT_NUMBER / $TOTAL_COMMITS ] Comparing old commit  $OLD_COMMIT_SHORT  ( $OLD_DATE ) with new commit  $NEW_COMMIT_SHORT  ( $NEW_DATE ) " \\ r  
					 
					 
					 
					    # echo -ne "[$CURRENT_COMMIT_NUMBER/$TOTAL_COMMITS] Comparing old commit $OLD_COMMIT_SHORT ($OLD_DATE) with new commit $NEW_COMMIT_SHORT ($NEW_DATE)"\\r   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    echo  " [ $CURRENT_COMMIT_NUMBER / $TOTAL_COMMITS ] Comparing old commit  $OLD_COMMIT_SHORT  ( $OLD_DATE ) with new commit  $NEW_COMMIT_SHORT  ( $NEW_DATE ) "   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      
					 
					 
					 
					      
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    # generate lists of files and their hashes for the old and new commits, excluding ignored files   
					 
					 
					 
					    # generate lists of files and their hashes for the old and new commits, excluding ignored files   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    OLD_FILES = $( git ls-tree -r $OLD_COMMIT  |  grep -vE " $( IFS = '|' ;  echo  " ${ VALIDATE_IGNORE_FILES [*] } " ) " )   
					 
					 
					 
					    OLD_FILES = $( git ls-tree -r $OLD_COMMIT  |  grep -vE " $( IFS = '|' ;  echo  " ${ VALIDATE_IGNORE_FILES [*] } " ) " )   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -294,17 +328,17 @@ if [ ! -f "$SRC_CLONE/commit-diff.txt" ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      # echo "Old commit $OLD_COMMIT_SHORT and new commit $NEW_COMMIT_SHORT are equivalent."   
					 
					 
					 
					      # echo "Old commit $OLD_COMMIT_SHORT and new commit $NEW_COMMIT_SHORT are equivalent."   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      COUNT_SAME = $(( COUNT_SAME +  1 ))   
					 
					 
					 
					      COUNT_SAME = $(( COUNT_SAME +  1 ))   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    else   
					 
					 
					 
					    else   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      echo  " [ $CURRENT_COMMIT_NUMBER / $TOTAL_COMMITS ] Difference found between old commit  $OLD_COMMIT_SHORT  and new commit  $NEW_COMMIT_SHORT "  >> commit-diff.txt   
					 
					 
					 
					      echo  " [ $CURRENT_COMMIT_NUMBER / $TOTAL_COMMITS ] Difference found between old commit  $OLD_COMMIT_SHORT  and new commit  $NEW_COMMIT_SHORT "  >> $COMMIT_DIFF_LOG   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					      COUNT_DIFF = $(( COUNT_DIFF +  1 ))   
					 
					 
					 
					      COUNT_DIFF = $(( COUNT_DIFF +  1 ))   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      set  +e  
					 
					 
					 
					      set  +e  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      diff -u <( echo  " $OLD_FILES " )  <( echo  " $NEW_FILES " )  > " differences/ $CURRENT_COMMIT_NUMBER - $OLD_COMMIT_SHORT - $NEW_COMMIT_SHORT "   
					 
					 
					 
					      diff -u <( echo  " $OLD_FILES " )  <( echo  " $NEW_FILES " )  > " $LOGS_DIR /commit- $CURRENT_COMMIT_NUMBER - $OLD_COMMIT_SHORT - $NEW_COMMIT_SHORT "   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					      set  -e  
					 
					 
					 
					      set  -e  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    fi   
					 
					 
					 
					    fi   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  done  < "commit-map.txt"   
					 
					 
					 
					  done  < "commit-map.txt"   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  "Summary:"  >> commit-diff.txt   
					 
					 
					 
					  echo  "Summary:"  >> $COMMIT_DIFF_LOG   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  " Equivalent commits:  $COUNT_SAME "  >> commit-diff.txt   
					 
					 
					 
					  echo  " Equivalent commits:  $COUNT_SAME "  >> $COMMIT_DIFF_LOG   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  " Different commits:  $COUNT_DIFF "  >> commit-diff.txt   
					 
					 
					 
					  echo  " Different commits:  $COUNT_DIFF "  >> $COMMIT_DIFF_LOG   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					fi  
					 
					 
					 
					fi  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					if  [  ! -d $OUT  ] ;  then  
					 
					 
					 
					if  [  ! -d $OUT  ] ;  then  
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -313,7 +347,6 @@ if [ ! -d $OUT ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  cd  $OUT   
					 
					 
					 
					  cd  $OUT   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # remove all non-master branches   
					 
					 
					 
					  # remove all non-master branches   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # TODO: need to see if we "redo" the other branches (except master, master-ci, devel, devel-staging, release3, release3-staging, dashcam3, dashcam3-staging, testing-closet*, hotfix-*)   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # git branch | grep -v "^  master$" | grep -v "\*" | xargs git branch -D   
					 
					 
					 
					  # git branch | grep -v "^  master$" | grep -v "\*" | xargs git branch -D   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # echo "cleaning up refs"   
					 
					 
					 
					  # echo "cleaning up refs"   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -322,7 +355,8 @@ if [ ! -d $OUT ]; then 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  "importing new lfs files"   
					 
					 
					 
					  echo  "importing new lfs files"   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # import "almost" everything to lfs   
					 
					 
					 
					  # import "almost" everything to lfs   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  git lfs migrate import --everything --include= "*.dlc,*.onnx,*.svg,*.png,*.gif,*.ttf,*.wav,selfdrive/car/tests/test_models_segs.txt,system/hardware/tici/updater,selfdrive/ui/qt/spinner_larch64,selfdrive/ui/qt/text_larch64,third_party/**/*.a,third_party/**/*.so,third_party/**/*.so.*,third_party/**/*.dylib,third_party/acados/*/t_renderer,third_party/qt5/larch64/bin/lrelease,third_party/qt5/larch64/bin/lupdate,third_party/catch2/include/catch2/catch.hpp,*.apk,*.apkpatch,*.jar,*.pdf,*.jpg,*.mp3,*.thneed,*.tar.gz,*.npy,*.csv,*.a,*.so*,*.dylib,*.o,*.b64,selfdrive/hardware/tici/updater,selfdrive/boardd/tests/test_boardd,selfdrive/ui/qt/spinner_aarch64,installer/updater/updater,selfdrive/debug/profiling/simpleperf/**/*,selfdrive/hardware/eon/updater,selfdrive/ui/qt/text_aarch64,selfdrive/debug/profiling/pyflame/**/*,installer/installers/installer_openpilot,installer/installers/installer_dashcam,selfdrive/ui/text/text,selfdrive/ui/android/text/text,selfdrive/ui/spinner/spinner,selfdrive/visiond/visiond,selfdrive/loggerd/loggerd,selfdrive/sensord/sensord,selfdrive/sensord/gpsd,selfdrive/ui/android/spinner/spinner,selfdrive/ui/qt/spinner,selfdrive/ui/qt/text,_stringdefs.py,dfu-util-aarch64-linux,dfu-util-aarch64,dfu-util-x86_64-linux,dfu-util-x86_64,stb_image.h,clpeak3,clwaste,apk/**/*,external/**/*,phonelibs/**/*,third_party/boringssl/**/*,flask/**/*,panda/**/*,board/**/*,messaging/**/*,opendbc/**/*,tools/cabana/chartswidget.cc,third_party/nanovg/**/*,selfdrive/controls/lib/lateral_mpc/lib_mpc_export/**/*,selfdrive/ui/paint.cc,werkzeug/**/*,pyextra/**/*,third_party/android_hardware_libhardware/**/*,selfdrive/controls/lib/lead_mpc_lib/lib_mpc_export/**/*,selfdrive/locationd/laikad.py,selfdrive/locationd/test/test_laikad.py,tools/gpstest/test_laikad.py,selfdrive/locationd/laikad_helpers.py,tools/nui/**/*,jsonrpc/**/*,selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/**/*,selfdrive/controls/lib/lateral_mpc/mpc_export/**/*,selfdrive/camerad/cameras/camera_qcom.cc,selfdrive/manager.py,selfdrive/modeld/models/driving.cc,third_party/curl/**/*,selfdrive/modeld/thneed/debug/**/*,selfdrive/modeld/thneed/include/**/*,third_party/openmax/**/*,selfdrive/controls/lib/longitudinal_mpc/mpc_export/**/*,selfdrive/controls/lib/longitudinal_mpc_model/lib_mpc_export/**/*,Pipfile,Pipfile.lock,gunicorn/**/*,*.qm,jinja2/**/*,click/**/*,dbcs/**/*,websocket/**/*"   
					 
					 
					 
					  BRANCHES = $( git for -each-ref --format= '%(refname)'  refs/heads/ |  sed 's%refs/heads/%%g'  |  grep -v -f <( echo  " ${ REWRITE_IGNORE_BRANCHES [*] } "  |  tr ' '  '\n' )  |  tr '\n'  ' ' )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  git lfs migrate import --include= "*.dlc,*.onnx,*.svg,*.png,*.gif,*.ttf,*.wav,selfdrive/car/tests/test_models_segs.txt,system/hardware/tici/updater,selfdrive/ui/qt/spinner_larch64,selfdrive/ui/qt/text_larch64,third_party/**/*.a,third_party/**/*.so,third_party/**/*.so.*,third_party/**/*.dylib,third_party/acados/*/t_renderer,third_party/qt5/larch64/bin/lrelease,third_party/qt5/larch64/bin/lupdate,third_party/catch2/include/catch2/catch.hpp,*.apk,*.apkpatch,*.jar,*.pdf,*.jpg,*.mp3,*.thneed,*.tar.gz,*.npy,*.csv,*.a,*.so*,*.dylib,*.o,*.b64,selfdrive/hardware/tici/updater,selfdrive/boardd/tests/test_boardd,selfdrive/ui/qt/spinner_aarch64,installer/updater/updater,selfdrive/debug/profiling/simpleperf/**/*,selfdrive/hardware/eon/updater,selfdrive/ui/qt/text_aarch64,selfdrive/debug/profiling/pyflame/**/*,installer/installers/installer_openpilot,installer/installers/installer_dashcam,selfdrive/ui/text/text,selfdrive/ui/android/text/text,selfdrive/ui/spinner/spinner,selfdrive/visiond/visiond,selfdrive/loggerd/loggerd,selfdrive/sensord/sensord,selfdrive/sensord/gpsd,selfdrive/ui/android/spinner/spinner,selfdrive/ui/qt/spinner,selfdrive/ui/qt/text,_stringdefs.py,dfu-util-aarch64-linux,dfu-util-aarch64,dfu-util-x86_64-linux,dfu-util-x86_64,stb_image.h,clpeak3,clwaste,apk/**/*,external/**/*,phonelibs/**/*,third_party/boringssl/**/*,flask/**/*,panda/**/*,board/**/*,messaging/**/*,opendbc/**/*,tools/cabana/chartswidget.cc,third_party/nanovg/**/*,selfdrive/controls/lib/lateral_mpc/lib_mpc_export/**/*,selfdrive/ui/paint.cc,werkzeug/**/*,pyextra/**/*,third_party/android_hardware_libhardware/**/*,selfdrive/controls/lib/lead_mpc_lib/lib_mpc_export/**/*,selfdrive/locationd/laikad.py,selfdrive/locationd/test/test_laikad.py,tools/gpstest/test_laikad.py,selfdrive/locationd/laikad_helpers.py,tools/nui/**/*,jsonrpc/**/*,selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/**/*,selfdrive/controls/lib/lateral_mpc/mpc_export/**/*,selfdrive/camerad/cameras/camera_qcom.cc,selfdrive/manager.py,selfdrive/modeld/models/driving.cc,third_party/curl/**/*,selfdrive/modeld/thneed/debug/**/*,selfdrive/modeld/thneed/include/**/*,third_party/openmax/**/*,selfdrive/controls/lib/longitudinal_mpc/mpc_export/**/*,selfdrive/controls/lib/longitudinal_mpc_model/lib_mpc_export/**/*,Pipfile,Pipfile.lock,gunicorn/**/*,*.qm,jinja2/**/*,click/**/*,dbcs/**/*,websocket/**/*"  $BRANCHES   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  echo  "reflog and gc"   
					 
					 
					 
					  echo  "reflog and gc"   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  # this is needed after lfs import   
					 
					 
					 
					  # this is needed after lfs import   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -351,7 +385,6 @@ git lfs fetch --all || true 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# final push - will also push lfs  
					 
					 
					 
					# final push - will also push lfs  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# TODO: switch to git@github.com:commaai/openpilot.git when ready  
					 
					 
					 
					# TODO: switch to git@github.com:commaai/openpilot.git when ready  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# if using mirror, it will also delete non-master branches (master-ci, nightly, devel, release3, release3-staging, dashcam3, release2)  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# git push --mirror git@github.com:commaai/openpilot-tiny.git  
					 
					 
					 
					# git push --mirror git@github.com:commaai/openpilot-tiny.git  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# using this instead - since this is also what --mirror does - https://blog.plataformatec.com.br/2013/05/how-to-properly-mirror-a-git-repository/  
					 
					 
					 
					# using this instead to ignore refs/pull/*  - since this is also what --mirror does - https://blog.plataformatec.com.br/2013/05/how-to-properly-mirror-a-git-repository/  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					git push git@github.com:commaai/openpilot-tiny.git +refs/heads/*:refs/heads/* +refs/tags/*:refs/tags/*  
					 
					 
					 
					git push --prune  git@github.com:commaai/openpilot-tiny.git +refs/heads/*:refs/heads/* +refs/tags/*:refs/tags/*