There are instances where a DCS github user submits a Pull-Request from their Fork of the repository which cannot be Merged automatically. The steps below will identify one approach for a repository administrator to solve this problem.
This approach requires that that administrator have a local, PC-based, repository of the project which is linked to their Forked repository, which is, by definition, linked to the main repository of the project. This discussion covers a local repository on a Windows PC. The discussion below assumes that the user and main project are on the “master” branch.
- Have that user commit any changes that have yet to be committed to their fork. Have them provide you a list of all of the changed files that have been committed to their Fork since their last successful Pull-Request.
- Direct that user to make no further edits until they are directed to do so.
- Open that user’s Fork, https://git.door43.org/< User’s DCS id>/<project id>/src/branch/master/
- Click the Download button on the right of the web page and select ZIP and the system will create a zip file in your PC’s Downloads folder (or wherever you have Windows configured to store downloads) with the name “<project id>-master.zip”
- Create a new folder specifically for the user’s files, but not under one of your local git repository folders.
- Back on the main DCS web page for that project, https://git.door43.org/unfoldingWord/<project id> or https://git.door43.org/WycliffeAssociates/<project id> you, as administrator, will move to the problematic Pull-Request and select “Close” to close it to any future action.
- On your PC side of things, move to your project’s local git repository and do the following sub-steps:
- Enter ‘git pull origin master’ to ensure that you have the latest files from the main repository in your local repository.
- For any changed files that you have made to the project which have not been pushed up to the main repository, do the associated git adds, git commit, git push {use “git push origin master”) to get your changes installed in the project’s repository without the need of a Pull-Request.
- Copy all changed files identified by that user from the extracted folders into appropriate folders of your local git repository.
- Perform the ‘git add’ for each of those, then the ‘git commit -m “message describing the changes”’, and then the ‘git push origin master’.
- Direct the user to delete their forked repository since it had an invalid configuration of files, and now does not have those that you just merged. They should follow the sub-steps below:
- Have them log on and open their forked repository on the DCS web.
- Have them select the Setting icon on the right side of the web page and on the Options tab scroll down to the Danger Zone.
- Have them select the “Delete This Repository’ button and then on the pop-up menu type the projects name, as identified on that web page. Lastly, select the “Confirm Deletion” button.
- Have the user open the project’s main repository page, see F. above and select the “Fork” icon near the top and right, , and then on that pop-up ‘New Repository Fork’ window select the ‘Fork Repository’ button at the bottom, leaving all of the fields unchanged.
- The user is now configured to begin their editing again.