gitpush-tool 0.3.3__tar.gz → 0.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gitpush_tool-0.3.3/gitpush_tool.egg-info → gitpush_tool-0.3.4}/PKG-INFO +1 -1
- gitpush_tool-0.3.4/gitpush/__init__.py +1 -0
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/gitpush/cli.py +27 -2
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4/gitpush_tool.egg-info}/PKG-INFO +1 -1
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/setup.py +1 -1
- gitpush_tool-0.3.3/gitpush/__init__.py +0 -1
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/LICENSE +0 -0
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/MANIFEST.in +0 -0
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/README.md +0 -0
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/gitpush/__doc__.py +0 -0
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/gitpush_tool.egg-info/SOURCES.txt +0 -0
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/gitpush_tool.egg-info/dependency_links.txt +0 -0
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/gitpush_tool.egg-info/entry_points.txt +0 -0
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/gitpush_tool.egg-info/top_level.txt +0 -0
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/pyproject.toml +0 -0
- {gitpush_tool-0.3.3 → gitpush_tool-0.3.4}/setup.cfg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.4"
|
|
@@ -461,22 +461,37 @@ def standard_git_push(commit_message, branch, remote, force=False, tags=False):
|
|
|
461
461
|
if force:
|
|
462
462
|
push_cmd.append("--force-with-lease")
|
|
463
463
|
print("⚠️ Using safe force push (--force-with-lease).")
|
|
464
|
-
if tags:
|
|
465
|
-
|
|
464
|
+
if tags:
|
|
465
|
+
push_cmd.append("--tags")
|
|
466
|
+
if remote and branch:
|
|
467
|
+
push_cmd.extend([remote, branch])
|
|
466
468
|
|
|
467
469
|
print(f"🚀 Executing: {' '.join(push_cmd)}")
|
|
468
470
|
subprocess.run(push_cmd, check=True)
|
|
469
471
|
print("✅ Successfully pushed changes.")
|
|
470
472
|
return True
|
|
473
|
+
|
|
471
474
|
except subprocess.CalledProcessError as e:
|
|
472
475
|
error_output = e.stderr.decode(errors='ignore').strip() if e.stderr else str(e)
|
|
476
|
+
|
|
473
477
|
if "nothing to commit" in error_output:
|
|
474
478
|
print("ℹ️ No changes to commit. Nothing to do.")
|
|
475
479
|
return True
|
|
480
|
+
|
|
481
|
+
if "non-fast-forward" in error_output.lower():
|
|
482
|
+
print("\n❗ Detected non-fast-forward issue. Attempting rebase...")
|
|
483
|
+
if attempt_rebase(remote, branch):
|
|
484
|
+
print("🔁 Retrying push after rebase...")
|
|
485
|
+
return standard_git_push(commit_message, branch, remote, force, tags)
|
|
486
|
+
else:
|
|
487
|
+
print("❌ Rebase failed. Please resolve conflicts manually and re-run the push.")
|
|
488
|
+
return False
|
|
489
|
+
|
|
476
490
|
print(f"❌ Push failed: {error_output}", file=sys.stderr)
|
|
477
491
|
return False
|
|
478
492
|
|
|
479
493
|
|
|
494
|
+
|
|
480
495
|
def has_incoming_changes(remote: str = "origin", branch: str = "main") -> bool:
|
|
481
496
|
try:
|
|
482
497
|
subprocess.run(["git", "fetch", remote], check=True, capture_output=True)
|
|
@@ -539,6 +554,16 @@ def show_merge_conflict_details():
|
|
|
539
554
|
print(f"❌ Could not retrieve conflicted files: {str(e)}")
|
|
540
555
|
|
|
541
556
|
|
|
557
|
+
def attempt_rebase(remote: str, branch: str) -> bool:
|
|
558
|
+
print("🔁 Attempting: git pull --rebase")
|
|
559
|
+
try:
|
|
560
|
+
subprocess.run(["git", "pull", "--rebase", remote, branch], check=True)
|
|
561
|
+
print("✅ Rebase completed successfully.")
|
|
562
|
+
return True
|
|
563
|
+
except subprocess.CalledProcessError as e:
|
|
564
|
+
print(f"❌ Rebase failed: {e.stderr.decode(errors='ignore') if e.stderr else str(e)}")
|
|
565
|
+
show_merge_conflict_details()
|
|
566
|
+
return False
|
|
542
567
|
|
|
543
568
|
|
|
544
569
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.3.3"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|