diff options
| author | Jeff Carr <[email protected]> | 2025-09-23 14:50:59 -0500 | 
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-09-23 14:50:59 -0500 | 
| commit | e0520ca96d2c854324bebb902e53ef1092849bb9 (patch) | |
| tree | 8e0d2951089b341f025997a7725b2a7f7c47875d | |
| parent | 6d7d74feb41866c0d3b59dac6f938e72efecf37b (diff) | |
apply patchesv0.25.19
| -rw-r--r-- | doPatch.go | 87 | ||||
| -rw-r--r-- | helperPatches.go | 17 | 
2 files changed, 60 insertions, 44 deletions
@@ -101,21 +101,24 @@ func doPatch() error {  	if argv.Patch.List != nil {  		var changed bool -		newpatches := forgepb.NewPatches() +		newpatches := new(forgepb.Set) +		newpatches.Patches = forgepb.NewPatches()  		for pset := range me.forge.Patchsets.IterAll() {  			pset.PrintTable()  			for patch := range pset.Patches.IterAll() { -				if err := setNewCommitHash(patch); err != nil { -					log.Infof("%s bad check on patch failure %v\n", patch.Filename, err) -					return err -				}  				changed = true -				if patch.NewHash == "" { -					if newpatches.AppendByPatchId(patch) { +				if patch.NewHash == "" || patch.NewHash == "na" { +					if newpatches.Patches.AppendByPatchId(patch) {  						log.Info("patchId added here", patch.PatchId)  					} else {  						log.Info("patchId already here", patch.PatchId)  					} +				} else { +					if err := setNewCommitHash(patch); err != nil { +						log.Infof("%s bad check on patch failure %v\n", patch.Filename, err) +						return err +					} +					log.Info("newhash set already here", patch.PatchId, patch.NewHash)  				}  			}  		} @@ -124,38 +127,54 @@ func doPatch() error {  				log.Warn("savePatchsets() failed", err)  			}  		} +		log.Info("NEW PATCHES TABLE")  		newpatches.PrintTable() -		if newpatches.Len() != 0 { -			for patch := range newpatches.IterAll() { -				log.Info("new patch:", patch.CommitHash, patch.NewHash, patch.Filename) -				repo := me.forge.FindByGoPath(patch.Namespace) -				if repo == nil { -					log.Info("\tCould not find namespace:", patch.Namespace) -					continue -				} -				if fhelp.QuestionUser("apply this patch?") { -					newhash, err := applyAndTrackPatch(repo, patch) -					log.Info("apply results:", newhash, err) -				} +		for patch := range newpatches.Patches.IterAll() { +			if err := setNewCommitHash(patch); err == nil { +				log.Info("newhash set already here", patch.PatchId, patch.NewHash) +				continue +			} +			log.Infof("%s is new\n", patch.Filename) +			repo := me.forge.FindByGoPath(patch.Namespace) +			if repo == nil { +				log.Info("\tCould not find namespace:", patch.Namespace) +				continue +			} +			if fhelp.QuestionUser("apply this patch?") { +				newhash, err := applyAndTrackPatch(repo, patch) +				log.Info("apply results:", newhash, err)  			} -			return log.Errorf("patches need to be applied")  		} +		return nil +		/* +			if newpatches.Len() != 0 { +				for patch := range newpatches.IterAll() { +					log.Info("new patch:", patch.CommitHash, patch.NewHash, patch.Filename) +					repo := me.forge.FindByGoPath(patch.Namespace) +					if repo == nil { +						log.Info("\tCould not find namespace:", patch.Namespace) +						continue +					} +				} +				return log.Errorf("patches need to be applied") +			} -		// return doPatchList() -		applied := findApplied() -		if applied == nil || applied.Len() == 0 { -			log.Info("no patches have been appled to the devel branch yet") +			// return doPatchList() +			applied := findApplied() +			if applied == nil || applied.Len() == 0 { +				log.Info("no patches have been appled to the devel branch yet") +				return nil +			} +			// for patch := range applied.IterAll() { +			// 	log.Info("SEND APPLIED: newhash:", patch.NewHash, "commithash:", patch.CommitHash, "patch", patch.Namespace) +			// } +			newpb, _, err := applied.HttpPostVerbose(myServer(), "applied") +			if err != nil { +				return err +			} +			newpb.PrintTable()  			return nil -		} -		// for patch := range applied.IterAll() { -		// 	log.Info("SEND APPLIED: newhash:", patch.NewHash, "commithash:", patch.CommitHash, "patch", patch.Namespace) -		// } -		newpb, _, err := applied.HttpPostVerbose(myServer(), "applied") -		if err != nil { -			return err -		} -		newpb.PrintTable() -		return nil +		*/  	}  	// if nothing, show patches & dirty repos diff --git a/helperPatches.go b/helperPatches.go index 6bfd4c1..88c301a 100644 --- a/helperPatches.go +++ b/helperPatches.go @@ -181,23 +181,20 @@ func setNewCommitHash(patch *forgepb.Patch) error {  	comment := cleanSubject(patch.Comment) -	if patch.NewHash != "" { -		return nil -	}  	os.Chdir(repo.GetFullPath())  	newhash, err := findCommitBySubject(comment)  	if err != nil {  		return log.Errorf("patch: not found hash: %s %s %s %s %v", patch.CommitHash, patch.Namespace, comment, newhash, err)  	} -	if patch.NewHash == newhash { -		// patch was already set -		return nil -	} -	if patch.NewHash != "" { -		log.Infof("patch: hash MISMATCH %s old=%s new=%s name=%s\n", patch.Namespace, patch.NewHash, newhash, comment) -		return nil + +	patchId, err := repo.FindPatchId(newhash) +	if err != nil { +		return err  	} + +	patch.PatchId = patchId  	patch.NewHash = newhash +  	log.Info("patch: found hash:", patch.CommitHash, newhash, patch.Namespace, comment)  	return nil  }  | 
