Skip to main content

Easily perform merge-based rebases, i.e. rebases that don’t alter history.

You can read the full rationale behind this idea here:

What?

As a summary:

  • git checkout topic && git merge master is the wrong way to merge. Get ready for bad things to happen.

  • git checkout topic && git rebase master is better but:

    • it alters history. It is safe from merge conflicts but doesn’t guarantee that merged code works. You are losing some intermediate states of your work.

    • it is incompatible with branches you already pushed to shared repository.

psykorebase:

  • mimics the “rebase” workflow, but only using merges, no history alteration. It replays “topic” changes on top of “master” in “topic” branch (just like rebase), without deleting “topic” changes.

  • preserves all states of your code.

  • is compatible with pushed branches.

  • the main (and only?) counterpart is that there are more entries in history. There are more commits and more merges. Is that a drawback? If you look carefully, things are clear and clean. But some developers don’t like it…

Install

Currently developped against Python 2.7.x. Supports only Git for now.

sudo pip install https://github.com/benoitbryon/psykorebase/archive/master.tar.gz#egg=psykorebase

Uninstall with sudo pip uninstall psykorebase.

Usage

Git

Current, in-development prototype

psykorebase MASTER [TOPIC] performs a “psycho-rebase” of TOPIC branch on top of MASTER. Where TOPIC is optional and defaults to current branch.

Example:

git checkout master && git pull --rebase origin master  # Update master.
git checkout topic && psykorebase master  # Psykorebase topic on top of master.

Planned usage (in development)

The default, issues one merge for each (new) commit in topic branch:

git checkout topic && psykorebase master.

The quick’n’dirty, issues one big merge which includes all (new) commits from topic branch (merges heads):

git checkout topic && psykorebase --fast master

The default is safer, the --fast works well when there are poor chances of problems. CHANGELOG =========

1.0.1 (2015-07-29)

  • Fix setup.py

1.0.0 (2015-07-29)

  • Add Python3 support.

  • Add Git support

  • Add psykorebase BRANCH and psykorebase --continue functionality.

Release files for psykorebase 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for psykorebase 1.0.1
File Size Uploaded
psykorebase-1.0.1.zip 13.1 kB Details

Release files / psykorebase-1.0.1.zip

Download URL psykorebase-1.0.1.zip
Size 13.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3b93caea16fa055088ac70a469312c6f58bdf7c4cfea4d5fd31de8a98314cfe8
BLAKE2b-256 checksum
How to use checksums
28afebacb6407d4fcd01aaa2899c1e572736a9cf8ca5d7276dc3f4cffea4b632
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.1 This release

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page