profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/wincent/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Greg Hurrell wincent GitHub Madrid, Spain https://wincent.com/ Coder at GitHub, Ex-Facebook

wincent/command-t 2562

⌨️ Fast file navigation for VIM

wincent/clipper 469

✂️ Clipboard access for local and remote tmux sessions

wincent/corpus 86

📝 A note-management application

wincent/base16-nvim 7

base16 color schemes in Lua for Neovim

wincent/atosym 3

dSYM-compatible replacement for atos

wincent/bansshee 2

Anti-SSH-attack tool

wincent/algorithms 1

Code related to the Princeton Algorithms course

wincent/automatic-octo-barnacle-theme 1

Empty Liferay 7.1 theme created for testing purposes

wincent/clipper-lightning-talk 1

Lightning talk on Clipper (clipboard access for local and remote tmux sessions)

wincent/converter 1

⚛️ Simple demo app for React workshop

PR closed wincent/hextrapolate

Bump tmpl from 1.0.4 to 1.0.5 dependencies

Bumps tmpl from 1.0.4 to 1.0.5. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/daaku/nodejs-tmpl/commits/v1.0.5">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

</details>

+3 -3

0 comment

1 changed file

dependabot[bot]

pr closed time in 3 days

delete branch wincent/hextrapolate

delete branch : dependabot/npm_and_yarn/tmpl-1.0.5

delete time in 3 days

PR closed wincent/masochist

chore(deps): bump tmpl from 1.0.4 to 1.0.5 dependencies

Bumps tmpl from 1.0.4 to 1.0.5. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/daaku/nodejs-tmpl/commits/v1.0.5">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

</details>

+3 -3

0 comment

1 changed file

dependabot[bot]

pr closed time in 3 days

delete branch wincent/masochist

delete branch : dependabot/npm_and_yarn/tmpl-1.0.5

delete time in 3 days

PR closed wincent/js

Bump tmpl from 1.0.4 to 1.0.5 dependencies

Bumps tmpl from 1.0.4 to 1.0.5. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/daaku/nodejs-tmpl/commits/v1.0.5">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

</details>

+3 -3

0 comment

1 changed file

dependabot[bot]

pr closed time in 4 days

delete branch wincent/js

delete branch : dependabot/npm_and_yarn/tmpl-1.0.5

delete time in 4 days

PR closed wincent/next

chore(deps): bump tmpl from 1.0.4 to 1.0.5 dependencies

Bumps tmpl from 1.0.4 to 1.0.5. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/daaku/nodejs-tmpl/commits/v1.0.5">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

</details>

+3 -3

0 comment

1 changed file

dependabot[bot]

pr closed time in 4 days

delete branch wincent/next

delete branch : dependabot/npm_and_yarn/tmpl-1.0.5

delete time in 4 days

issue commentwincent/command-t

Is it possible to run gvim 8.2, win 10 and still use command-t

Probably ruby 2.4 isn't compatible.

In principle, there's no reason why v2.4 shouldn't work. I'm using different versions of Ruby on different machines (v2.6.3-p62 on the machine I'm on right now, albeit a macOS machine); there's nothing special about that version though, as I've used older and newer Ruby versions in different places.

One thing to bear in mind is it's always worth doing a make clean as part of any of these troubleshooting sessions, because there's always a chance that you end up not testing the artifact that you think you're testing (as you discovered with the rogue version you found in another folder).

steinbitglis

comment created time in 4 days

push eventwincent/docvim

Greg Hurrell

commit sha 31fb0835ae658067abad52e3fb36cacdaa5f6a27

test: add corpus.snap to parser tests as stress test Now that the parser is close to being "complete" (in the sense that it can in theory parse most valid Lua), let's see how far it can get through the 600+ lines of Lua in the main Corpus Lua file. Just over 50 lines in... not bad, I guess... We die because I failed to correctly implement the very first variant of the `stat` production in the Lua grammar: stat ::= varlist `=´ explist | ... Hopefully won't be too hard. Looks like I'm just failing to detect termination of the statement correctly.

view details

Greg Hurrell

commit sha 4eb10d98130de37ebe17619bd515b19440345e6a

fix: detect `varlist = explist` statement termination correctly This gets us 40 lines further into our stress test snapshot file.

view details

Greg Hurrell

commit sha 97c1ad75db60b9cd30143859abc0c1a8a0f8b837

fix: skip comment tokens in one more place Gets us parsing about 140 more lines of the stress test.

view details

Greg Hurrell

commit sha 8bff2ebafc281c60168a5f68db00e1829e889634

fix: skip comment tokens in one more place 3 more lines of progress.

view details

Greg Hurrell

commit sha 103a67ec1dd86b34f7640f557820a4a3a08766a1

fix: skip comments when parsing table constructor fields Yielding 240 more lines of progress through the stress test file.

view details

Greg Hurrell

commit sha a62197250b8f5363655119bba6cda55c273004c9

fix: handle edge case in table field parsing

view details

Greg Hurrell

commit sha a0d832b627a7767f9df9927e76d2dabeb0a78360

fix: correct failure to parse some forms of prefixexp With this, we can parse all of the stress test file. Problem was we were parsing: (exp) and: Name "blah" Name 'blah' Name [[blah]] Name {blah} Name.blah Name:blah Name[blah] but not: (exp) "blah" (exp) 'blah' etc

view details

push time in 10 days

push eventwincent/docvim

Greg Hurrell

commit sha aa797112a409b321895e74cd497b222641b51204

feat: propagate lexer errors through parser

view details

Greg Hurrell

commit sha f63eceab962a92708c66d70c74fb94e88b3f0dcd

test: make snapshots deal with leading/trailing whitespace more uniformly I can't just trim blindly at front and back, because that means that expect output that starts with an indent, like: | 10 | yo, dawg can't be captured, nor can input like: print "look at me, starting in an indented column!" -- ^ want to point at something here -- 01234

view details

push time in 10 days

push eventwincent/docvim

Greg Hurrell

commit sha 47471f320d70585da522c317f173a6ff246b8436

feat: add first cut at pretty errors

view details

push time in 11 days

push eventwincent/wincent

Greg Hurrell

commit sha 4270bbfd3ede3d96e4f68c4f0d2478958d64b70b

chore(dotfiles): update `gh cs ports` invocation for v0.12.0 compatibility Technically, I think it will still work, at least for this version, although I haven't tried it yet. In practice, I expect to basically always invoke this one without an argument.

view details

push time in 11 days

push eventwincent/wincent

Greg Hurrell

commit sha 4270bbfd3ede3d96e4f68c4f0d2478958d64b70b

chore(dotfiles): update `gh cs ports` invocation for v0.12.0 compatibility Technically, I think it will still work, at least for this version, although I haven't tried it yet. In practice, I expect to basically always invoke this one without an argument.

view details

push time in 11 days

push eventwincent/docvim

Greg Hurrell

commit sha b65a8d0fa91e5532a2759784fe5828d06410d3f1

test: unwrap parse results to reduce nesting And also because I want to produce prettier error output in the future, so I'll be calling a special function for that. View with `git show/diff -b` to see what things of substance actually changed.

view details

Greg Hurrell

commit sha 43a7540c5f24c3fb66d0d58f8522ba6e620501fc

refactor: move away from `Box<dyn Error>` in parser Because I've discovered that this makes errors really easy to throw, but not so easy to consume (eg. you don't know you've got a `ParserError`, so you can't access `position` on it). So, use `std::convert::From` trait so that we can wrap other errors (eg. `LexerError`) by turning them into `ParserError`, then git rid of `Box<dyn ...>`. Still need to decide what to do with those two ugly `Utf8Error` and `ParseIntError` ones because we don't have positions at that point; will probably just change the type to `Option` so that position can be `None` (ie. unknown) for those.

view details

Greg Hurrell

commit sha 822af0f533e2a0ede0c05db39037c0efefd913eb

refactor: make Utf8Error and ParseIntError handling less awkward Well, maybe it still sucks, but at least we haven't lost position info now. It's possible I should just replace this with a simpler error to cover both cases, but I can always do that later.

view details

push time in 12 days

push eventwincent/docvim

Greg Hurrell

commit sha 8334f72b6ccf429d0d578500d64f0a15aea1f87b

feat: parse `return` and `break` Although as noted in comments, nothing in here is explicitly forcing that these be the last statement in a block. I haven't checked yet, but it's possible this kind of falls out naturally from the rest of the system anyway (ie. after the block, if there is a statement other than "end" etc then we might get an `UnexpectedToken` error anyway).

view details

Greg Hurrell

commit sha d6ff243604dfa35f56cfd42b380e801e48c62bb0

test: add tests to show that `return`/`break` must come last Although note the error message is pretty darn terrible; I have an open issue for improving error messages in general.

view details

Greg Hurrell

commit sha 4193b13ef2ce9e4f1da47e96b300a31b001c398e

refactor: explicitly skip over comments Instead of implicitly. With this, we can now error if we ever see a token we're not expecting.

view details

push time in 13 days

push eventwincent/docvim

Greg Hurrell

commit sha 00a772a9101135c692990a9c508af4121073bec6

feat: parse `local function` declaration

view details

Greg Hurrell

commit sha 9a520ae2576be7b421c950daa3e583f4cbcbd119

feat: parse `function` statements

view details

Greg Hurrell

commit sha 3ba09d61a7ab990e64a8f392af151772f475d624

feat: parse `function` expressions

view details

push time in 13 days

push eventwincent/docvim

Greg Hurrell

commit sha 59adbbb722107d72160c67837fe3ffc087582e23

refactor: reuse `parse_explist()` in a couple of places Nice savings here: 1 file changed, 18 insertions(+), 180 deletions(-)

view details

Greg Hurrell

commit sha 6066ae8db9bf9f1f7e781e616381ee5bf7e52f88

refactor: replace another bunch of code with `parse_explist` This commit: 1 file changed, 24 insertions(+), 61 deletions(-) Combined with the previous commit, that gives us this overall: 1 file changed, 42 insertions(+), 241 deletions(-) which is pretty neat.

view details

push time in 14 days

push eventwincent/docvim

Greg Hurrell

commit sha f8c90a72a0d3bd27bc9cbf13ab280799f7465fb4

feat: parse `for` and `for`/`in` Note: not using `parse_name()` yet, so it might get deleted in a future commit. Next step, though, will be seeing if I can re-use `parse_explist()` in more places.

view details

push time in 14 days

push eventwincent/docvim

Greg Hurrell

commit sha 01db6b74b5d72ea44dfbef9d80926e3571d68fd9

feat: parse `if`/`elseif`/`else` statements

view details

push time in 15 days

push eventwincent/docvim

Greg Hurrell

commit sha 4a0cee84380b698dc31760ef1fadb09b710b2794

feat: parse `while` blocks

view details

Greg Hurrell

commit sha c92bc66fd7d44ea866f2671448e76876fd82efbf

feat: parse `repeat` statements

view details

push time in 16 days

push eventwincent/docvim

Greg Hurrell

commit sha 8c7966fc279da82756c5a303076bf05e093e8917

test: add snapshot for unterminated `do`/`end` block

view details

push time in 17 days

push eventwincent/docvim

Greg Hurrell

commit sha 093bf86c124fd5d8f7bf6059319ebecb41083651

refactor: extract `parse_block()` Getting rid of some mutation along the way. This sets us up to be able to parse blocks in other contexts. For example, next thing I might try is parsing: do [block] end

view details

Greg Hurrell

commit sha 1fe59fccbe7beb08f063c172788729e3a99ff8ea

feat: parse `do`/`end` blocks

view details

Greg Hurrell

commit sha edc5893d22b5502093305aaacf98c3a6a2bb6dba

refactor: get rid of "Chunk" AST node type Seeing as a chunk is syntactically identical to a block, this really just adds one layer of nesting for no good reason. View the diff with `-b` to see that the snapshots really just removed that outermost wrapper.

view details

push time in 17 days

push eventwincent/wincent

Greg Hurrell

commit sha 6fcb5e4b404c2788bf58a2e81a5490d7d5ee6f35

feat(dotfiles): teach gg completion to complete files for `gg test` Unfortunately I don't know how to get it to complete filenames if I skip the `test` subcommand (because `gg test/thing` is equivalent to `gg test test/thing`) but this is still probably useful and I can expand it more as time goes on.

view details

push time in 17 days

push eventwincent/dotfiles

Greg Hurrell

commit sha 82f8ca38f4d07751bd1ce02f9e019105062868bc

feat(dotfiles): teach gg completion to complete files for `gg test` * wincent f987b8e5...6fcb5e4b (1): > feat(dotfiles): teach gg completion to complete files for `gg test`

view details

push time in 17 days

push eventwincent/wincent

Greg Hurrell

commit sha 6fcb5e4b404c2788bf58a2e81a5490d7d5ee6f35

feat(dotfiles): teach gg completion to complete files for `gg test` Unfortunately I don't know how to get it to complete filenames if I skip the `test` subcommand (because `gg test/thing` is equivalent to `gg test test/thing`) but this is still probably useful and I can expand it more as time goes on.

view details

push time in 17 days

push eventgithub/docs

Greg Hurrell

commit sha ba5c392c0b5f519c150822f732b17980eb4c26d4

docs: add docs for dealing with special characters in ref names There are a few places in the UI where we provide instructions for how to do things on the command-line. We can provide shell-friendly escaped versions of _most_ branch names, but there will always be some edge-casey ones (eg. names containing single quotes) for which the escaping rules vary subtly by shell. Rather than try to cram a dozen variants of the commands into the UI, we want to direct people to the docs for such problematic names. The intent here is not to document every shell's rules (doomed to be incomplete and become stale over time), but rather provide a flavour of what users should be aware of, and some helpful links to jumping off to official upstream docs for commonly-used shells. Closes: https://github.com/github/coding/issues/2388

view details

Greg Hurrell

commit sha 5877bee50f4143ea00563f87434b98329bcde0d6

docs: fix `shortTitle` copy-pasta mistake

view details

Greg Hurrell

commit sha fccc95d0f1bb2e2c356b1d71ee65b81ecb5653d2

test: rename file to match document title Because it was failing this test: ● pages module › loadPages › every English page has a filename that matches its slugified title as seen here: https://github.com/github/docs/pull/9577/checks?check_run_id=3524790084

view details

Greg Hurrell

commit sha cab088c44efc6d34e4c925df3cc4033323a8156c

docs: edit for simplicity As per style guide: https://github.com/github/docs/blob/main/contributing/content-style-guide.md and self-review checklist: https://github.com/github/docs/blob/main/CONTRIBUTING.md#self-review - Avoided nominalization in one place (eg. "for structure" instead of "to provide organization", which might have been confused with a _GitHub_ organization). - Change passive to active voice in one place (eg. "most shells would interpret" instead of "would be interpreted by most shells").

view details

Greg Hurrell

commit sha 5f98a188710da8163840fc4540870ecc19128f25

docs: include more text in link text for accessibility As suggested here: https://github.com/github/docs/pull/9577/files#r703346187 Links: - https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-in-context.html - https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-link-only.html

view details

Greg Hurrell

commit sha d1d177ccded9eccb36c208fb4572650fea24d60d

docs: move sentence higher up in document As suggested here: https://github.com/github/docs/pull/9577/files#r703350737

view details

push time in 17 days

Pull request review commentgithub/docs

doc: add docs for dealing with special characters in ref names

+---+title: Dealing with special characters in branch and tag names+intro: 'Git is very permissive about what characters are allowed in branch and tag names. When using Git from a command-line shell, you may need to deal with special characters by using escaping or quoting.'+versions:+  fpt: '*'+  ghes: '*'+  ghae: '*'+shortTitle: Special characters in names+---+Most repositories use simple branch names like `main` or `update-icons`. Likewise, tag names usually follow a basic format, such as a version number like `v1.2.3`. Both branch and tag names may also use the path separator (`/`) for structure (for example, `area/item`, or `level-1/level-2/level-3`). Apart from a handful of exceptions &mdash; such as not starting or ending a name with a slash, or having consecutive slashes in the name &mdash; Git places [very few restrictions](https://git-scm.com/docs/git-check-ref-format) on what characters may be used.++As such, you may encounter a branch or tag name with characters that have special meaning for your command-line shell. These characters will need to be quoted or escaped in order for you to use them safely with a Git command, otherwise running the command may have unintended effects. For example, the `$` symbol is used by many shells to refer to a variable. This means that most shells would interpret a valid branch name like `hello-$USER` as equivalent to the word "hello", followed by a hyphen, followed by the current value of the `USER` variable, rather than as the literal string `hello-$USER`. If the branch name includes a literal dollar sign, then, we need to stop the shell from expanding the variable reference. Similarly, if a branch name contains a semi-colon (`;`), most shells would interpret that as a command separator, so we would need to quote or escape the name appropriately.++* In the [Bash](https://www.gnu.org/software/bash/) shell, enclosing a string of characters in single quotes preserves the literal value of the characters within the single quotes (but note, you cannot include a single quote inside a single-quoted string).+* [Zsh](https://www.zsh.org/) behaves similarly to Bash, in that single quotes turn off the special behavior of most characters inside them (although, note that this behavior is configurable via the `RC_QUOTES` option).+* [PowerShell](https://microsoft.com/powershell) likewise treats characters verbatim when inside single quotes.++As such, most branch and tag names with special characters can be handled by wrapping the name in single quotes. The main exception to this rule is when the branch name itself contains a single quote. For edge cases like this, it is best to consult the official documentation provided with your shell. Starting points for some common shells include:

Sounds good @georgebrock. 👍

wincent

comment created time in 17 days

PullRequestReviewEvent

Pull request review commentgithub/docs

doc: add docs for dealing with special characters in ref names

+---+title: Dealing with special characters in branch and tag names+intro: 'Git is very permissive about what characters are allowed in branch and tag names. When using Git from a command-line shell, you may need to deal with special characters by using escaping or quoting.'+versions:+  fpt: '*'+  ghes: '*'+  ghae: '*'+shortTitle: Special characters in names+---+Most repositories use simple branch names like `main` or `update-icons`. Likewise, tag names usually follow a basic format, such as a version number like `v1.2.3`. Both branch and tag names may also use the path separator (`/`) for structure (for example, `area/item`, or `level-1/level-2/level-3`). Apart from a handful of exceptions &mdash; such as not starting or ending a name with a slash, or having consecutive slashes in the name &mdash; Git places [very few restrictions](https://git-scm.com/docs/git-check-ref-format) on what characters may be used.

Good call. Thanks @georgebrock!

wincent

comment created time in 17 days