The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,861 other subscribers

Archive for the ‘DVCS – Distributed Version Control’ Category

git encoding trouble: recursively removing a directory where git prints out a different name than it accepts

Posted by jpluimers on 2017/05/11

The story so far:

A few years back I put all my conferences material in a GitHub repository https://github.com/jpluimers/Conferences/. There were a lot directories and files so I didn’t pay much attention to the initial check-in list. The files had been part of copy.com syncing between Windows and Mac machines.

Often git on a Mac is a bit easier than on Windows (on a Mac you can install them with the xcode-select --install trick which installs only the Command Line Tools without having to install the full Xcode [WayBack]).

I choose a Mac because it is closer to a Linux machine than Widows so I expected no encoding trouble (as git has a Linux origin: it “was created by Linus Torvalds in 2005 for development of the Linux kernel“).

Boy I was wrong:

Recently I cloned the repository in a different place and found out a few strange things:

  1. Directories with accented characters had been duplicated, for instance in https://github.com/jpluimers/Conferences/tree/master/2011
    1. …/EKON15-Renaissance-Hotel-D%FCsseldorf
    2. …/EKON15-Renaissance-Hotel-Düsseldorf
  2. Beyond Compare would show the same content
  3. After a check-out git would not understand the %FC encoded directory name (%FC is IEC_8859-1 encoding for ü and \374 is the octal representation of 0xFC [WayBack]) and a git status would show stuff like this:
    • Untracked files:
        (use "git add ..." to include in what will be committed)
      
          EKON15-Renaissance-Hotel-D%FCsseldorf/

      or

      deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/Delphi-XE2-Debugging/BO-EKON15-Delphi-XE2-Debugging.pdf"
  4. A git rm -r --cached call [WayBack] would not work, as both these would fail:
    • $ git rm -r --cached EKON15-Renaissance-Hotel-D%FCsseldorf
      fatal: pathspec 'EKON15-Renaissance-Hotel-D%FCsseldorf' did not match any files
      

      and

      $ git rm -r --cached "EKON15-Renaissance-Hotel-D\374sseldorf"
      fatal: pathspec 'EKON15-Renaissance-Hotel-D\374sseldorf' did not match any files
      
  5. a

So git could:

  • detect the directories and files
  • display the names of the detected directories and files
  • not translate back the specified names into directories and files

All if this was with:

$ git --version
git version 1.9.5 (Apple Git-50.3)

This is how I fixed it

First I created an alias:

alias git-config="echo global: ; git config --list --global ; echo local: ; git config --lis --local ; echo system: ; git config --list --system"

That allowed me to view the git settings on various levels in my system.

It revealed I didn’t have the core.precomposeunicode setting at all (valid values are true or false). I also read various stories about one or both being the correct value: osx – Git and the Umlaut problem on Mac OS X – Stack Overflow [WayBack].

 

 

–jeroen

Result of git status:


$ git status .
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add/rm <file>…" to update what will be committed)
(use "git checkout — <file>…" to discard changes in working directory)
deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/Delphi-XE2-Debugging/BO-EKON15-Delphi-XE2-Debugging.pdf"
deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/Delphi-XE2-Unit-Testing/BO-EKON15-Delphi-XE2-Unit-Testing.pdf"
deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/Delphi-XE2-Workshop/BO-EKON15-2011-XE2-Wokshop-0-sample-code.txt"
deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/Delphi-XE2-Workshop/BO-EKON15-2011-XE2-Wokshop-1-Delphi-64bit.pdf"
deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/Delphi-XE2-Workshop/BO-EKON15-2011-XE2-Wokshop-2-LiveBindings-DataBinding.pdf"
deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/Delphi-XE2-Workshop/BO-EKON15-2011-XE2-Wokshop-3-Delphi-VCL Styles.pdf"
deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/Delphi-XE2-Workshop/BO-EKON15-2011-XE2-Wokshop-4-Delphi-FireMonkey.pdf"
deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/Delphi-XE2-Workshop/BO-EKON15-2011-XE2-Wokshop-5-Delphi-FireMonkey-xPlatform.pdf"
deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/Delphi-XE2-and-XML/BO-EKON15-2011-Delphi-XE2-and-XML.pdf"
deleted: "EKON15-Renaissance-Hotel-D\374sseldorf/XSL-transforming-XML/BO-EKON15-2011-XSL-transforming-XML.pdf"

 

Posted in Development, DVCS - Distributed Version Control, Encoding, git, ISO-8859, Software Development, Source Code Management | Leave a Comment »

Comparing commits across time – via github User Documentation

Posted by jpluimers on 2017/05/02

To get to the compare view, append /compare to your repository’s path.

This brings you the basic comparison interface which is very flexible: just enter a branch, tag or history marker in the dropdowns for base and compare.

Examples from the user docs:

–jeroen

Source: Comparing commits across time – User Documentation

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Software Development, Source Code Management | Leave a Comment »

Easily print GitHub markdown as beautiful PDFs that – in Chrome – immediately download

Posted by jpluimers on 2017/04/26

Printing Markdown with GitPrint

Simply view any Markdown file on GitHub, then in your URL bar replace the github.com part of the URL with gitprint.com — your markdown file will be rendered to a beautiful, printable PDF.

Try an example https://gitprint.com/jquery/jquery/blob/master/README.md

Every once in a while I feel like I’ve been living under a stone for years. Today is such a day as gitprint has been around since 2014 and I only noticed it until now.

It’s cool as it prints any github page (including Markdown, RestructuredText, etc) as a PDF file.

Notes:

Read the rest of this entry »

Posted in Bookmarklet, Development, DVCS - Distributed Version Control, git, GitHub, jQuery, Software Development, Source Code Management, Web Browsers | Leave a Comment »

When your markdown README files on GitHub are broken as of lately

Posted by jpluimers on 2017/04/18

Basically below gist tells it all.

Many repositories on GitHub do not have whitespace between the # and headings. This is against the specs, so GitHub fixed their rendering engine. Which means now many files do not render nicely any more.

So if you have headings like this:

##text

Fix them to be like:

## text

If your GitHub repository has less than 50 starts, you did not get an automatic pull request to fix it from https://github.com/bryant1410/readmesfix so you can either:

–jeroen

Recently, GitHub introduced the change in how atx
headers are parsed in Markdown files.

##Wrong

Correct

While this change follows the spec, it breaks many existing repositories. I took the
README dataset which we created
at source{d} and ran a simple
regexp PySpark job.
It appeared that more than 500,000 repositories have README files which are rendered
with invalid headers.

Among those 0.5mm, there are more than 10,000 which have more than 50 stars. They were
uploaded to data.world.

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Software Development, Source Code Management | Leave a Comment »

version control – How can I run “git status” and just get the filenames – Stack Overflow

Posted by jpluimers on 2017/04/10

git status --porcelain | sed s/^...//

Source: version control – How can I run “git status” and just get the filenames – Stack Overflow [WayBack]

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management | Leave a Comment »

Go home GitHub, you’re drunk.

Posted by jpluimers on 2017/04/01

Go home GitHub, you’re drunk. – Jeroen Wiert Pluimers – Google+

Source: Go home GitHub, you’re drunk. – CodeProject – Google+

–jeroen

 

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Software Development, Source Code Management | Leave a Comment »

Some links on getting a local CollabNet SVN repository to git

Posted by jpluimers on 2017/03/22

A while ago, I had to rescue a project of a developer that had hosted their SVN repository on a locally running CollabNet installation in a VM that wasn’t properly backed up. So besides pollution of a development system, it had to be resurrected after the host crashed. Apparently

Here are some links without full steps that I used to find my way around, find the SVN repository locations and credentials, then convert it to git (that’s now remotely hosted in multiple places both internally and externally).

No steps as hopefully I will never need to take this route again:

–jeroen

Posted in CollabNet, Development, DVCS - Distributed Version Control, git, Source Code Management, Subversion/SVN | Leave a Comment »

Git for Computer Scientists

Posted by jpluimers on 2017/03/21

Quick introduction to git internals for people who are not scared by words like Directed Acyclic Graph.

Cool: Git for Computer Scientists [WayBack]

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, Source Code Management | Leave a Comment »

raw.githack.com – like rawgit.com but supports bitbucket as well and runs on plain nginx

Posted by jpluimers on 2017/03/07

Found out recently that next to rawgit.com there is also raw.githack.com which contrary to the name also supports bitbucket files:

–jeroen

Posted in BitBucket, Development, DVCS - Distributed Version Control, git, githack.com, GitHub, Mercurial/Hg, rawgit, Source Code Management | Leave a Comment »

Keeping A GitHub Fork Updated

Posted by jpluimers on 2017/02/21

git fetch upstream

git rebase upstream/master

Source: Keeping A GitHub Fork Updated

For GitHub pull requests, then:

git checkout -b feature-name upstream/master

Source: Git Forks And Upstreams: How-to and a cool tip | Atlassian Git Tutorial

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, Source Code Management | Leave a Comment »