Skip to content

Special character sequences in git commands #32

Description

@El-Gor-do

This is for other people's future reference. I was using the MSBuildGitHash Nuget package v2.0.2.

While trying to run some custom git commands to capture additional information, I ran into problems with character sequences that needed to be escaped.

  • % needs to be escaped as %%
  • ae needs to be escaped as a%e
  • cd needs to be escaped as c%d

These are the git commands I was trying to run:

  • git show --quiet --format=%ae
  • git show --quiet --format=%an
  • git show --quiet --format=%cd --date=iso-strict
  • git show --quiet --format=%B
  • git show --quiet --format=%H

This is the corresponding ItemGroup with correctly escaped character sequences:

  <ItemGroup>
    <AssemblyMetadataCommand Include="GitAuthorEmail">
      <Command>git show --quiet --format=%%a%e</Command>
    </AssemblyMetadataCommand>
    <AssemblyMetadataCommand Include="GitAuthorName">
      <Command>git show --quiet --format=%%an</Command>
    </AssemblyMetadataCommand>
    <AssemblyMetadataCommand Include="GitCommitDate">
      <Command>git show --quiet --format=%%c%d --date=iso-strict</Command>
    </AssemblyMetadataCommand>
    <AssemblyMetadataCommand Include="GitCommitMessage">
      <Command>git show --quiet --format=%%B</Command>
    </AssemblyMetadataCommand>
    <AssemblyMetadataCommand Include="GitFullHash">
      <Command>git show --quiet --format=%%H</Command>
    </AssemblyMetadataCommand>
  </ItemGroup>

There may be other character sequences that require escaping which I am not yet aware of.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions