-
Notifications
You must be signed in to change notification settings - Fork 2.6k
rebase-merges: improve --rebase-merges label generation #2315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
a0c75b3
to
ce33c83
Compare
I believe the sign off should be the proper name you go by, rather than an abbreviation. If changing the commit message, you should mention that the underlying issue is in the allowable characters on NTFS and FAT file systems as the label names effectively create refs on the file system. A simple force push of the updated PR branch is all that's needed to do an update. Otherwise LGTM. At least it fixes the primary problem of colon characters in merge messages. |
Hope this update makes it look a bit better |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left two comments, but I think I can take it from here.
The `label` todo command in interactive rebases creates temporary refs in the `refs/rewritten/` namespace. These refs are stored as loose refs, i.e. as files in `.git/refs/rewritten/`, therefore they have to conform with file name limitations on the current filesystem. This poses a problem in particular on NTFS/FAT, where e.g. the colon character is not a valid part of a file name. Let's safeguard against this by replacing not only white-space characters by dashes, but all non-alpha-numeric ones. However, we exempt non-ASCII UTF-8 characters from that, as it should be quite possible to reflect branch names such as `↯↯↯` in refs/file names. Signed-off-by: Matthew Rogers <[email protected]> Signed-off-by: Johannes Schindelin <[email protected]>
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
rebase-merges: improve --rebase-merges label generation
Resolves #2307 by replacing all non-alphanumeric ascii characters with '-' and appending an _ to prevent clashes with reserved windows filenames.