react-native: react-native-git-upgrade deletes my non-versioned files and fails
Description
I installed react-native-git-upgrade@0.2.5 and ran it on my project.
Reproduction
$ react-native-git-upgrade
git-upgrade info Check for updates
git-upgrade info Read package.json files
git-upgrade info Check declared version
git-upgrade info Check matching versions
git-upgrade info Check React peer dependency
git-upgrade info Check that Git is installed
git-upgrade info Get information from NPM registry
git-upgrade info Upgrading to React Native 0.41.2, React ~15.4.0
git-upgrade info Setup temporary working directory
git-upgrade info Configure Git environment
git-upgrade info Init Git repository
git-upgrade info Add all files to commit
git-upgrade info Commit current project sources
git-upgrade info Create a tag before updating sources
git-upgrade info Generate old version template
git-upgrade info Add updated files to commit
git-upgrade info Commit old version template
git-upgrade info Install the new version
npm WARN deprecated node-uuid@1.4.7: use uuid module instead
git-upgrade info Generate new version template
git-upgrade info Add updated files to commit
git-upgrade info Commit new version template
git-upgrade info Generate the patch between the 2 versions
git-upgrade info Save the patch in temp directory
git-upgrade info Reset the 2 temporary commits
git-upgrade info Apply the patch
fatal: unrecognized input
git-upgrade WARN The upgrade process succeeded but there might be conflicts to be resolved. See above for the list of files that have merge conflicts.
git-upgrade info Upgrade done
$
And in the end, no file is modified, and some files are missing, for example android/app/google-services.json
(present in my .gitignore
)
Solution
No idea
Additional Information
- React Native version: just installed 0.41.2, wanted to upgrade RN templates according to it
- Platform: n/a
- Operating System: macOS
Note: my Android/iOS package name is net.tribeez
(my package.json
name is tribeez
)
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 19
- Comments: 16 (6 by maintainers)
Commits related to this issue
- Keep the ignored files during the upgrade process Summary: This PR fixes the issue #12237 relative to react-native-git-upgrade. When the user adds new files to the .gitignore file, those files are d... — committed to facebook/react-native by ncuillery 6 years ago
- Keep the ignored files during the upgrade process Summary: This PR fixes the issue #12237 relative to react-native-git-upgrade. When the user adds new files to the .gitignore file, those files are d... — committed to Plo4ox/react-native by ncuillery 6 years ago
This is very much still happening to everyone who uses
react-native-git-upgrade
and uses a.gitignore
..env
files also disappear, which I’m not happy about…Ok I reproduced the deletion by running the Git commands manually, just like the tool does: https://gist.github.com/ncuillery/4b09e36d772601301cf0d0c94dcde692. I think I got it:
The first step of the process consists in restoring the template of your current RN version, just like it would have been generated by the init command. So your
.gitignore
file is replaced by this one https://github.com/facebook/react-native/blob/master/local-cli/templates/HelloWorld/_gitignore for the rest of the process.From now on,
android/app/google-services.json
is no longer ignored. So when the files are committed, it is considered as “added”.At the end, the
git reset --hard
command reverts the commit and logically deletes the file 😱I’ve started using rn-diff for upgrades, usually pretty quick and less frustrating to do it manually. https://github.com/ncuillery/rn-diff
@Hauuguu I did, yes