How does updating Retrospect work?
There has been a lot of confusion on how Retrospect update work. So this KB article is an attempt to explain the main ideas and principles behind the system. And...
Home of Retrospect
A while ago we moved to BitBucket for the Retrospect Issue Tracker (see Bitbucket here we come). Together with this change, we also converted our SVN repository to a GIT repo and added it as a private repository to the BitBucket project. The big benefit is that issues that are fixed are linked to the actual check-ins. At the beginning of 2015 we introduced the Retrospect Nightly repository (see Nightly GIT Repository). This is a separate repository that contains the most recent Retrospect commits.
And here is where the issues started to occur. The Nightly repository was a small subset of the actual Retrospect repository. It contained only those files that were need for the add-on and all other stuff (like build scripts, test scripts, other private data) was omitted. Because of this, the Nightly repo had to be created using git cherry-pick
and that really cause some pain when updates were pushed:
patch-x.x.x
) and commit to the Nightly repomaster
branch.That was a lot of work. So this had to change.
So, what is going to change? Well, the Nightly repository is going to be removed. Instead, we are going to introduce a public repository on the main Retrospect Bitbucket page. This repository will only contain the main Retrospect add-on code. All the code that is need for us to create, test and release Retrospect will be moved into a private repository. From that repository we include the public repo as a git submodule
. That way, all the changes to Retrospect will be done in the public repository, both on the master
branch and the patch-x.x.x
branch.
But there is more. If an issue is linked to a commit, users can now see what changed in the code. And in the future, others could fork our repository and create pull-requests for either fixing issues or adding more features. However, there are also two drawbacks:
git filter-branch
and that caused all the commits to change their REFS. So all previously commits that were linked to issues will no longer be valid ones and thus will no longer work.But these are drawbacks that we are willing to accept. So very soon, the current nightly repository will be removed (and redirect to the main one) and all who want to have the bleeding edge code can get the code there.