Skip to content

InsightSoftwareConsortium/proxTV

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

proxTV fork for Insight Toolkit (ITK)

This project is a fork of the Eigen3 source hosted at https:///github.com/albarji/proxTV.

This fork contains changes required for ITKTotalVariation to work with ITK.

Upstream proxTX appears to not currently be maintianed.

What is the branch naming convention?

Each branch is namged with the following pattern for/itk-proxTV-X-SHA{7}

where:

  • X is the upstream version of the forked project
  • SHA{7}

Additional documentation on developing ITK see: https://docs.itk.org/en/latest/contributing/index.html

Workflow for Updating

Setup repositories

1. Clone (or reuse) the fork and ensure the tree is clean:
    git clone git@github.com:InsightSoftwareConsortium/proxTV.git 
    cd eigen
2. Wire remotes:
    git remote add upstream https://github.com/albarji/proxTV.git
3. Fetch:
    git fetch origin
    git fetch upstream

Create a new branch following the convention

  1. Fetch the new upstream Eigen release tag and define workflow variables:
# Set the upstream proxTV release tag to update to (e.g. 3.3.0)
ITK_PROXTV_TARGET_TAG=3.3.0

git fetch upstream refs/tags/${ITK_PROXTV_TARGET_TAG}:refs/tags/${ITK_PROXTV_TARGET_TAG}

XYZ="3.3.0"
echo "XYZ [${XYZ}]"

SHA=$(git rev-parse --short refs/tags/${ITK_PROXTV_TARGET_TAG})
echo "SHA [${SHA}]"

NEW_BRANCH="for/itk-proxtx-${XYZ}-${SHA}"
echo "NEW_BRANCH [${NEW_BRANCH}]"
  1. Fetch the prior fork branch and inspect overlay commits to replay:
git fetch upstream
git fetch origin ${ITK_CURRENT_BRANCH}:${ITK_CURRENT_BRANCH}
git log --oneline upstream/master..${ITK_CURRENT_BRANCH}
  1. Determine the base commit where the ITK overlay patches begin, then branch and rebase onto the new upstream release (resolve conflicts as needed):
# Find the commit where ITK_CURRENT_BRANCH diverged from upstream.
# Using upstream/master directly as the rebase base is unreliable because
# upstream/master may have advanced since ITK_CURRENT_BRANCH was created.
REBASE_BASE=$(git merge-base ${ITK_CURRENT_BRANCH} upstream/master)
echo "REBASE_BASE [${REBASE_BASE}]"

git checkout -b ${NEW_BRANCH} ${ITK_CURRENT_BRANCH}
git rebase --onto refs/tags/${ITK_PROXTV_TARGET_TAG} ${REBASE_BASE} ${NEW_BRANCH}

If the rebase encounters conflicts that are difficult to resolve, abort it and cherry-pick the overlay commits individually instead:

git rebase --abort

# List the overlay commits (newest first) from the log output in step 5
# and cherry-pick them oldest-first onto the new base:
git checkout -b ${NEW_BRANCH} refs/tags/${ITK_PROXTV_TARGET_TAG}
git cherry-pick <oldest-overlay-sha> ... <newest-overlay-sha>
  1. Verify:
git log  --oneline refs/tags/${ITK_PROXTV_TARGET_TAG}..HEAD
git diff --stat    refs/tags/${ITK_PROXTV_TARGET_TAG}..HEAD
  1. Publish the branch:
git push origin ${NEW_BRANCH}:${NEW_BRANCH}

About

Matlab and Python toolbox for fast Total Variation proximity operators

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors