Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

git-p4: Support having non-utf-8 characters returned by p4#928

Open
bassdr wants to merge 1 commit intogit:mastergit/git:masterfrom
bassdr:patch-1bassdr/git:patch-1Copy head branch name to clipboard
Open

git-p4: Support having non-utf-8 characters returned by p4#928
bassdr wants to merge 1 commit intogit:mastergit/git:masterfrom
bassdr:patch-1bassdr/git:patch-1Copy head branch name to clipboard

Conversation

@bassdr
Copy link

@bassdr bassdr commented Dec 4, 2020

When perforce server is not configured for Unicode, and commands like p4 users returns a string with non-ascii characters (eg. one of the user's FullName has a french é in it), git-p4 was giving Exception: failure accessing depot: could not connect.
With this patch, if such character is encountered, it will honor the new git-p4.textEncoding config option, or silently replace the erronous character and continue.

Cc: Luke Diamand luke@diamand.org

@gitgitgadget-git
Copy link

Welcome to GitGitGadget

Hi @bassdr, and welcome to GitGitGadget, the GitHub App to send patch series to the Git mailing list from GitHub Pull Requests.

Please make sure that your Pull Request has a good description, as it will be used as cover letter.

Also, it is a good idea to review the commit messages one last time, as the Git project expects them in a quite specific form:

  • the lines should not exceed 76 columns,
  • the first line should be like a header and typically start with a prefix like "tests:" or "commit:", and
  • the commit messages' body should be describing the "why?" of the change.
  • Finally, the commit messages should end in a Signed-off-by: line matching the commits' author.

It is in general a good idea to await the automated test ("Checks") in this Pull Request before contributing the patches, e.g. to avoid trivial issues such as unportable code.

Contributing the patches

Before you can contribute the patches, your GitHub username needs to be added to the list of permitted users. Any already-permitted user can do that, by adding a comment to your PR of the form /allow. A good way to find other contributors is to locate recent pull requests where someone has been /allowed:

Both the person who commented /allow and the PR author are able to /allow you.

An alternative is the channel #git-devel on the FreeNode IRC network:

<newcontributor> I've just created my first PR, could someone please /allow me? https://github.com/gitgitgadget/git/pull/12345
<veteran> newcontributor: it is done
<newcontributor> thanks!

Once on the list of permitted usernames, you can contribute the patches to the Git mailing list by adding a PR comment /submit.

If you want to see what email(s) would be sent for a /submit request, add a PR comment /preview to have the email(s) sent to you. You must have a public GitHub email address for this.

After you submit, GitGitGadget will respond with another comment that contains the link to the cover letter mail in the Git mailing list archive. Please make sure to monitor the discussion in that thread and to address comments and suggestions (while the comments and suggestions will be mirrored into the PR by GitGitGadget, you will still want to reply via mail).

If you do not want to subscribe to the Git mailing list just to be able to respond to a mail, you can download the mbox from the Git mailing list archive (click the (raw) link), then import it into your mail program. If you use GMail, you can do this via:

curl -g --user "<EMailAddress>:<Password>" \
    --url "imaps://imap.gmail.com/INBOX" -T /path/to/raw.txt

To iterate on your change, i.e. send a revised patch or patch series, you will first want to (force-)push to the same branch. You probably also want to modify your Pull Request description (or title). It is a good idea to summarize the revision by adding something like this to the cover letter (read: by editing the first comment on the PR, i.e. the PR description):

Changes since v1:
- Fixed a typo in the commit message (found by ...)
- Added a code comment to ... as suggested by ...
...

To send a new iteration, just add another PR comment with the contents: /submit.

Need help?

New contributors who want advice are encouraged to join git-mentoring@googlegroups.com, where volunteers who regularly contribute to Git are willing to answer newbie questions, give advice, or otherwise provide mentoring to interested contributors. You must join in order to post or view messages, but anyone can join.

You may also be able to find help in real time in the developer IRC channel, #git-devel on Freenode. Remember that IRC does not support offline messaging, so if you send someone a private message and log out, they cannot respond to you. The scrollback of #git-devel is archived, though.

@gitgitgadget-git
Copy link

There is an issue in commit 46d0b10:
Commit not signed off

@dscho
Copy link
Member

dscho commented Dec 4, 2020

/allow

@bassdr bassdr changed the title Support having non-utf-8 characters returned by p4 git-p4: Support having non-utf-8 characters returned by p4 Dec 4, 2020
@gitgitgadget-git
Copy link

User bassdr is now allowed to use GitGitGadget.

WARNING: bassdr has no public email address set on GitHub

@dscho
Copy link
Member

dscho commented Dec 4, 2020

@bassdr would you mind wrapping the commit message at 76 columns/line, and adding your sign-off?

@dscho
Copy link
Member

dscho commented Dec 4, 2020

Also, please edit the first comment, as it will be sent as cover letter (inlined for a single patch), and you don't want the PR template to be sent to the Git mailing list.

Finally, you will want to Cc: Luke Diamand just like was done here.

@bassdr
Copy link
Author

bassdr commented Dec 4, 2020

@dscho thank you for your feedback, I think I addressed your comments. Let me know if I need to do something else. Thanks

@dscho
Copy link
Member

dscho commented Dec 4, 2020

Looks good to me!

@bassdr
Copy link
Author

bassdr commented Dec 4, 2020

/submit

@gitgitgadget-git
Copy link

Submitted as pull.928.git.git.1607123962304.gitgitgadget@gmail.com

To fetch this version into FETCH_HEAD:

git fetch https://github.com/gitgitgadget/git pr-git-928/bassdr/patch-1-v1

To fetch this version to local tag pr-git-928/bassdr/patch-1-v1:

git fetch --no-tags https://github.com/gitgitgadget/git tag pr-git-928/bassdr/patch-1-v1

@bassdr
Copy link
Author

bassdr commented Dec 7, 2020

By the way, this patch is good enough for my use case, but if we want to go one step further regarding character handling, we could:

  • check the server configuration: I think p4 counter Unicode will return 0 or 1, otherwise p4 info will contain such information
    • If not Unicode, then we force P4CHARSET=none and use my approach (or even better, auto-detect using chardet)
    • if Unicode, then set P4CHARSET=utf8 and let p4 do the conversion as it knows best what to do.

@dscho
Copy link
Member

dscho commented Dec 7, 2020

By the way, this patch is good enough for my use case, but if we want to go one step further regarding character handling, we could:

* check the server configuration: I think `p4 counter Unicode` will return `0` or `1`, otherwise `p4 info` will contain such information
  
  * If not Unicode, then we force `P4CHARSET=none` and use my approach
  * if Unicode, then set `P4CHARSET=utf8` and let p4 do the conversion as it knows best what to do.

Maybe you want to add that reply to the mailing list thread?

@bassdr
Copy link
Author

bassdr commented Dec 7, 2020

@dscho Yes, how do we do this? reply to the email directly?

@dscho
Copy link
Member

dscho commented Dec 7, 2020

@dscho Yes, how do we do this? reply to the email directly?

Yes.

When perforce server is not configured for Unicode, and commands like
`p4 users` returns a string with non-ascii characters (eg. one of the
user's FullName has a french `é` in it), git-p4 was giving
`Exception: failure accessing depot: could not connect`.
With this patch, if such character is encountered, it will honor the new
`git-p4.textEncoding` config option, or silently replace the erronous
character and continue.

Signed-off-by: David Racine <bass_dr@hotmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.