Skip to content

Special character sequences in git commands #32

@El-Gor-do

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.

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