johanw666 / Signal-Android

Fork from a private messenger for Android with extra options added: full backup and (partial, ony text) xml backup of messages. Restore can happen at any time, not only after a fresh install. Import SMS database. Import of (unencrypted) WhatsApp databases. Removed apk expire. Choose between passphrase protection and the Android screenlock. Choice for the backup location (internal or removable storage on Android < 11 (on 11 and higher this is already possible)). Set the maptype in the place picker. Option to treat view-once media as normal media. Option to ignore remote deletion. Choose between FCM or websocket notification delivery.
https://johanw.home.xs4all.nl/Signal/signal-jw.html
GNU Affero General Public License v3.0
250 stars 16 forks source link

"Feature request": Can you make one commit per feature? #16

Closed gerion0 closed 3 years ago

gerion0 commented 3 years ago

I'm compiling Signal myself for a long time and just discovered your fork. Especially the "Choose backup location" option is highly relevant for me. Currently, I'm unable to make backups at all due to the internal memory restriction. However, I don't want to use all of your features. Unfortunately, I found only one commit that contains all features together.

Can you split the one big commit into one commit per feature? Maybe, this even reduces the maintainance burden on your side, since git can rebase many small commits better.

johanw666 commented 3 years ago

I don't work that way: using Git to auto merge diffs gives way too much merge problems. When a new Signal version is released I check which files I adapted are changed and I apply my patches - and possibly other changes required to keep up - by hand. That is why I always comment them, so I can easily find them. Some files contain changes for more features, like the chat settings. And some are so heavily reworked (like StorageUtil, relevant for backups) that I have absolutely no trust in auto patching. I publish the resulting changed files in a zipfile that can be copied over the official Signal source zipfile before building.

I could create a backup-location only patch for you but I'm not going to maintain it. And I plan serious changes in that area when I finally get Android 11 because there I can use the MANAGE_EXTERNAL_STORAGE permission to get much more freedom in that area.

gerion0 commented 3 years ago

I don't work that way: using Git to auto merge diffs gives way too much merge problems. When a new Signal version is released I check which files I adapted are changed and I apply my patches - and possibly other changes required to keep up - by hand.

Ohoh, sound complicated. Git has a feature where it can remember merge conflict solutions. Maybe this helps a little bit.

Some files contain changes for more features, like the chat settings.

I guess, these would be the places where several patches would simplify things because Git can "guess" better, what belongs to each other. At least this is my experience.

And some are so heavily reworked (like StorageUtil, relevant for backups) that I have absolutely no trust in auto patching.

When doing a rebase, you can check the (rebased) changes very easily. I usually do this after my rebases.

I could create a backup-location only patch for you but I'm not going to maintain it.

Thank you, but I must decline. I cannot maintain it myself (only partly knowledge of Java and no knowledge at all of the Signal source code). Maybe Signal upstream supports this some day…

Yeah ok, then I will close this request.