Execute the push command. # Workflow 1. Find and open the local repository 2. Resolve the remote URL from configuration or argument 3. Determine local and remote view names 4. Connect to the remote server 5. Query remote state and changelist 6. Calculate which changes need to be pushed 7. If dry run, display preview and exit 8. Upload changes in dependency order 9. Upload any tagged states 10. D
(&self)
| 785 | /// - Authentication failures |
| 786 | /// - Diverged histories (without --force) |
| 787 | fn run(&self) -> CliResult<()> { |
| 788 | // Create a tokio runtime for async operations |
| 789 | let rt = tokio::runtime::Runtime::new().map_err(|e| { |
| 790 | CliError::Internal(anyhow::anyhow!("Failed to create async runtime: {}", e)) |
| 791 | })?; |
| 792 | |
| 793 | rt.block_on(self.run_async()) |
| 794 | } |
| 795 | } |
| 796 | |
| 797 | // Tests |