mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 01:58:36 +08:00 
			
		
		
		
	update
This commit is contained in:
		
							parent
							
								
									ebd82bae91
								
							
						
					
					
						commit
						6503dcd44c
					
				
							
								
								
									
										24
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							|  | @ -1033,13 +1033,17 @@ const fs = __importStar(__nccwpck_require__(7147)); | ||||||
| const fsHelper = __importStar(__nccwpck_require__(7219)); | const fsHelper = __importStar(__nccwpck_require__(7219)); | ||||||
| const io = __importStar(__nccwpck_require__(7436)); | const io = __importStar(__nccwpck_require__(7436)); | ||||||
| const path = __importStar(__nccwpck_require__(1017)); | const path = __importStar(__nccwpck_require__(1017)); | ||||||
| function prepareExistingDirectory(git, repositoryPath, repositoryUrl, clean, ref) { | function prepareExistingDirectory(git_1, repositoryPath_1, repositoryUrl_1, clean_1, ref_1) { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, arguments, void 0, function* (git, repositoryPath, repositoryUrl, clean, ref, preserveLocalChanges = false) { | ||||||
|         var _a; |         var _a; | ||||||
|         assert.ok(repositoryPath, 'Expected repositoryPath to be defined'); |         assert.ok(repositoryPath, 'Expected repositoryPath to be defined'); | ||||||
|         assert.ok(repositoryUrl, 'Expected repositoryUrl to be defined'); |         assert.ok(repositoryUrl, 'Expected repositoryUrl to be defined'); | ||||||
|         // Indicates whether to delete the directory contents
 |         // Indicates whether to delete the directory contents
 | ||||||
|         let remove = false; |         let remove = false; | ||||||
|  |         // If preserveLocalChanges is true, log it
 | ||||||
|  |         if (preserveLocalChanges) { | ||||||
|  |             core.info(`Preserve local changes is enabled, will attempt to keep local files`); | ||||||
|  |         } | ||||||
|         // Check whether using git or REST API
 |         // Check whether using git or REST API
 | ||||||
|         if (!git) { |         if (!git) { | ||||||
|             remove = true; |             remove = true; | ||||||
|  | @ -1120,14 +1124,26 @@ function prepareExistingDirectory(git, repositoryPath, repositoryUrl, clean, ref | ||||||
|                 remove = true; |                 remove = true; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         if (remove) { |         if (remove && !preserveLocalChanges) { | ||||||
|             // Delete the contents of the directory. Don't delete the directory itself
 |             // Delete the contents of the directory. Don't delete the directory itself
 | ||||||
|             // since it might be the current working directory.
 |             // since it might be the current working directory.
 | ||||||
|             core.info(`Deleting the contents of '${repositoryPath}'`); |             core.info(`Deleting the contents of '${repositoryPath}'`); | ||||||
|             for (const file of yield fs.promises.readdir(repositoryPath)) { |             for (const file of yield fs.promises.readdir(repositoryPath)) { | ||||||
|  |                 // Skip .git directory as we need it to determine if a file is tracked
 | ||||||
|  |                 if (file === '.git') { | ||||||
|  |                     continue; | ||||||
|  |                 } | ||||||
|                 yield io.rmRF(path.join(repositoryPath, file)); |                 yield io.rmRF(path.join(repositoryPath, file)); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |         else if (remove && preserveLocalChanges) { | ||||||
|  |             core.info(`Skipping deletion of directory contents due to preserve-local-changes setting`); | ||||||
|  |             // We still need to make sure we have a git repository to work with
 | ||||||
|  |             if (!git) { | ||||||
|  |                 core.info(`Initializing git repository to prepare for checkout with preserved changes`); | ||||||
|  |                 yield fs.promises.mkdir(path.join(repositoryPath, '.git'), { recursive: true }); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -1224,7 +1240,7 @@ function getSource(settings) { | ||||||
|             } |             } | ||||||
|             // Prepare existing directory, otherwise recreate
 |             // Prepare existing directory, otherwise recreate
 | ||||||
|             if (isExisting) { |             if (isExisting) { | ||||||
|                 yield gitDirectoryHelper.prepareExistingDirectory(git, settings.repositoryPath, repositoryUrl, settings.clean, settings.ref); |                 yield gitDirectoryHelper.prepareExistingDirectory(git, settings.repositoryPath, repositoryUrl, settings.clean, settings.ref, settings.preserveLocalChanges); | ||||||
|             } |             } | ||||||
|             if (!git) { |             if (!git) { | ||||||
|                 // Downloading using REST API
 |                 // Downloading using REST API
 | ||||||
|  |  | ||||||
|  | @ -11,7 +11,8 @@ export async function prepareExistingDirectory( | ||||||
|   repositoryPath: string, |   repositoryPath: string, | ||||||
|   repositoryUrl: string, |   repositoryUrl: string, | ||||||
|   clean: boolean, |   clean: boolean, | ||||||
|   ref: string |   ref: string, | ||||||
|  |   preserveLocalChanges: boolean = false | ||||||
| ): Promise<void> { | ): Promise<void> { | ||||||
|   assert.ok(repositoryPath, 'Expected repositoryPath to be defined') |   assert.ok(repositoryPath, 'Expected repositoryPath to be defined') | ||||||
|   assert.ok(repositoryUrl, 'Expected repositoryUrl to be defined') |   assert.ok(repositoryUrl, 'Expected repositoryUrl to be defined') | ||||||
|  | @ -19,6 +20,11 @@ export async function prepareExistingDirectory( | ||||||
|   // Indicates whether to delete the directory contents
 |   // Indicates whether to delete the directory contents
 | ||||||
|   let remove = false |   let remove = false | ||||||
|    |    | ||||||
|  |   // If preserveLocalChanges is true, log it
 | ||||||
|  |   if (preserveLocalChanges) { | ||||||
|  |     core.info(`Preserve local changes is enabled, will attempt to keep local files`) | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   // Check whether using git or REST API
 |   // Check whether using git or REST API
 | ||||||
|   if (!git) { |   if (!git) { | ||||||
|     remove = true |     remove = true | ||||||
|  | @ -114,12 +120,23 @@ export async function prepareExistingDirectory( | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   if (remove) { |   if (remove && !preserveLocalChanges) { | ||||||
|     // Delete the contents of the directory. Don't delete the directory itself
 |     // Delete the contents of the directory. Don't delete the directory itself
 | ||||||
|     // since it might be the current working directory.
 |     // since it might be the current working directory.
 | ||||||
|     core.info(`Deleting the contents of '${repositoryPath}'`) |     core.info(`Deleting the contents of '${repositoryPath}'`) | ||||||
|     for (const file of await fs.promises.readdir(repositoryPath)) { |     for (const file of await fs.promises.readdir(repositoryPath)) { | ||||||
|  |       // Skip .git directory as we need it to determine if a file is tracked
 | ||||||
|  |       if (file === '.git') { | ||||||
|  |         continue | ||||||
|  |       } | ||||||
|       await io.rmRF(path.join(repositoryPath, file)) |       await io.rmRF(path.join(repositoryPath, file)) | ||||||
|     } |     } | ||||||
|  |   } else if (remove && preserveLocalChanges) { | ||||||
|  |     core.info(`Skipping deletion of directory contents due to preserve-local-changes setting`) | ||||||
|  |     // We still need to make sure we have a git repository to work with
 | ||||||
|  |     if (!git) { | ||||||
|  |       core.info(`Initializing git repository to prepare for checkout with preserved changes`) | ||||||
|  |       await fs.promises.mkdir(path.join(repositoryPath, '.git'), { recursive: true }) | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -70,7 +70,8 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> { | ||||||
|         settings.repositoryPath, |         settings.repositoryPath, | ||||||
|         repositoryUrl, |         repositoryUrl, | ||||||
|         settings.clean, |         settings.clean, | ||||||
|         settings.ref |         settings.ref, | ||||||
|  |         settings.preserveLocalChanges | ||||||
|       ) |       ) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Salman Muin Kayser Chishti
						Salman Muin Kayser Chishti