title | layout | date | author | categories | navbar | |
---|---|---|---|---|---|---|
Git Rev News Edition 3 (May 13th, 2015) |
default |
2015-05-13 21:06:51 +0100 |
chriscool |
|
false |
Welcome to the third edition of Git Rev News, a digest of all things Git. For our goals, the archives, the way we work, how to contribute or to subscribe see the Git Rev News page on https://git.github.io.
This edition still covers Git's 10th year of existence, as well as the Git Merge conference held on April 8th & 9th in Paris, France, and also some discussions since the end of March.
At the Git Merge 2015 Emma Jane Hogbin Westby gave a presentation about her experience teaching Git to adults. As a long time version control teacher, she has found that the usual ways to teach people Git don't work well.
One of the reason is that Git is complex, so people have to learn a lot before a simple "Hello world!" with Git makes sense. Also people use Git to support their work, Git is not what they do. Another reason is that it is difficult for adults to learn because of all the other pressures which are put on them by life. Learning is a bit terrifying for them.
There are ways to make it easier for them to learn though. The theory about adult education called andragogy gives six insights about how to motivate them. Based on these insights and other theories like constructivism and Bloom's taxonomy, Emma Jane developed new ways of teaching Git and version control.
She found that a good way is to start by trying to solve the learner's own real problems using ideas, not Git commands or tools first. As a lot of problems around version control are social anyway, it is useful to teach teamwork first.
So she starts by asking people to describe their role in the organisation, who they are working with and how, what are their tasks, their workflows, how they manage branches, what are their tools, infrastructure and constrains. This can be done using pens, papers and colors.
When people have finished documenting everything, which is anyway a
good thing, then Git commands can be introduced in the context in
which they are useful. For example as people are drawing boxes and
arrows on diagrams, they can be taught the git clone
, git push
and other Git commands that can be associated with the code sharing
arrows.
Teaching this way makes people 'build' their knowledge, talk to each other about their workflows and visually document their use of Git.
This whole process makes Git more accessible and friendly, which is Emma Jane's goal.
She shares this goal in articles, like this one which is an article version of her talk, in videos, blog posts and other materials available from her Git for Teams web site or her gitforteams GitHub repo, and also in an upcoming Git for Teams of One or More book.
At the Contributor Summit that was part of the Git Merge 2015, Jeff King, aka Peff, gave a presentation about the status of Git as a Software Freedom Conservancy (SFC) project.
Git is a member project of the SFC since 2010. This gives some legal status to "The Git Project" and makes it possible for it to handle money (around $19,000), hold domain names (git-scm.com, git-scm.org) and the "Git" trademark, and own a Mac!
The decisions related to those assets and the project itself are made by agreement of the benevolent-committee-for-life, made of Junio Hamano, Jeff King and Shawn Pearce. The committee is limited because the Project does not own any copyright on the code and has no power over the technical side of the project. Also the decisions must support FLOSS aspects of the project.
Ideas about how to use the assets or make changes to the project should be discussed on the list because the committee wants to represent the will of the community. That's why after the Contributor Summit Peff posted the source code of his slides on the list, asking for suggestions about what to do, like he did after his presentation at the Summit.
One question is: what should the project do with its money? The money comes from donations on the web site, the Google Summer of Code (GSoC), Amazon affiliate links and book royalties. Some of this money goes to helping developers travel to the GSoC mentor summit, and a few other things.
Peff talked a bit about what he calls "half baked ideas" he has to spend the money, like participating in the Outreach Program for Women, now known as Outreachy or giving it to the SFC or other organisations.
At the Summit after Peff's presentation, Git developers mostly talked about how to make it possible for companies to fund developers working on Git, and since the Summit, there has not been much discussion on the mailing list about possible changes to the current situation.
Karthik Nayak, a Google Summer of Code student, has been working for
some months on developing the --allow-unknown-type
option for git cat-file
.
He has been helped by Eric Sunshine, Ramsay Jones, Phil Hord, Charles Bailey, David Turner, Duy Nguyen,
Jeff King and Junio Hamano, and, along the development, improving the test script led
to a discovery and fix of a bug
in hash-object --literally
.
The 10th iteration of his patch series was merged to the 'next' branch, so the new option will probably appear in the next git release.
Sébastien Guimmara started working on improving the output of git help
.
The current output lists "the most commonly used git commands" in alphabetical order. For a long time people have been saying that it is probably not the best way to help users find the git command they need, and that it would be better to group commands by topic. So Sébastien's work is very welcome.
Unfortunately git developers can have different views on how to group commands together. So it can be difficult for them to agree on such kind of changes. Long discussions because of small personal preferences - we call that bikeshedding - can sometimes go on for a while.
In the case of Sébastien's patch series, many developers helped or got involved in the discussions: Eric Sunshine, Junio Hamano, Stefan Beller, Matthieu Moy, Johannes Schindelin, Johannes Sixt. Emma Jane Hogbin Westby also weighed in with her experience in teaching Git to people, which is a valuable piece of input.
We will see how it goes and if some improvements are merged.
Phillip Susi had trouble getting gitk to show notes. Michael J. Gruber tried to help him, but it didn't work when adding a note while gitk is running even when using F5 or Shift-F5 that should refresh the display. Michael found that:
Apparently, gitk rereads the refs but not commits it has read already - and the commit reading includes the notes lookup.
and decided to "cc the master". The master is Paulus aka Paul Mackerras who created gitk ten years ago and has been maintaining it since that time.
Paul agreed that indeed works need to be done to fix this problem. He
asked if git notes list
is the best way to find out all the current
notes, and Johan Herland who developed git notes
answered yes.
Joey Hess who is developing git-annex was surprised by how
git ls-files
expands wildcard characters like *[]
and the fact that escaping these characters
using a backslash character \
makes it impossible to only list files in a directory:
While normally ls-files would recurse, slash-escaped wildcard characters in the
directory name prevent recursion.
joey@darkstar:~/tmp/aaa>git ls-files 'foo[d]'
foo[d]/subfile
food
joey@darkstar:~/tmp/aaa>git ls-files 'foo\[d\]'
joey@darkstar:~/tmp/aaa>
The above example shows a case where it's impossible to get ls-files
to only list files in a directory and not other files that match the
wildcard. This seems like it must be a bug, and it means it's impossible
to reliably work around the wildcard expansion behavior.
Duy Nguyen, Jeff King and Jonathan Nieder replied that there are ways
to tell Git to interpret no character as a wildcard. The
--literal-pathspecs
option and the GIT_LITERAL_PATHSPECS
environment variable have been created especially for this purpose and
it is a good idea to use them in script or tools, like GitHub is doing
on their servers.
Eduardo Espejo found that Git does not compile anymore when using the
NO_IPV6
configuration switch. And it is not the first time that
someone finds out that Git such a NO_IPV6
breakage.
This time Junio Hamano, the Git maintainer, fixed the breakage in
"daemon.c", but more importantly found that NO_CURL
and NO_EXPAT
configurations did not to pass the test suite.
So helped by Jeff King he quickly fixed that too.
And now he has a nightly cron job to try building
and testing a few selected configurations.
- Git v2.4.0, April 30th
The latest feature release Git v2.4.0 is now available at the usual places. It is comprised of 426 non-merge commits since v2.3.0, contributed by 76 people, 25 of which are new faces.
You can find more information about this release down in the Media section of the newsletter.
- Gerrit 2.11, April 17th
Includes a range of new features, like inline editing in the browser, and many improvements in the change screen UI
- GitLab 7.10, April 22nd
Besides bug fixes and performance improvements, you can now import your code from Google Code, quickly invite your colleagues and friends to GitLab and set default Git Hooks for everyone.
- objective-git 0.8.1, April 23rd
- git-extras 3.0.0, April 27th
- JGit and EGit 3.7.1, April 27th
- nodegit v0.4.0, May 7th
Booking.com is willing to pay a Git developer on a contract basis to work on Git scalability issues. If you are interested please contact Ævar Arnfjörð Bjarmason <[email protected]>.
GSoC 2015: 2 accepted proposals
For a long time Git has been participating in the Google Summer of Code. This summer two students, Paul Tan and Karthik Nayak, mentored by four experienced Git developers, Johannes Schindelin, Stefan Beller, Matthieu Moy and Christian Couder, will work on improving Git and will receive a stipend from Google.
Related to Git 2.4
- What's coming in Git 2.4.0, by Nathan Willis at LWN.net
- Git 2.4 — atomic pushes, push to deploy, and more, a great explanation by GitHub's Michael Haggerty
In the aftermath of Git-Merge 2015
- The recorded talks from Git Merge are now available online
- Git Merge 2015 Reviewed, by Jakub Naliwajek at netguru
- GitMinutes #35: Git Merge 2015 Part 1, the first of five podcast episodes from Git-Merge
- Notes from Git Contributor Summit (Git Merge 2015) from our own editor Nicola (at Atlassian)
Various
- Fun with failing cherry-pick, by Git's maintainer, Junio C Hamano
- libgit2 got rid of the OpenSSL binding on OSX
- Git Resources for Visual Learners, neat collection from TheChangelog
- --force considered harmful; understanding git's --force-with-lease by Steve Smith at Atlassian
- 7 Pro Tips For Using Git from Fedora Developers, by Libby Clark at linux.com
- A cryptic crossword themed around Git, by Thore Husfeld
- Be aware of your git stashes, pro-tip by Marvin Frommhold
- Git Commits are Not Transactions, blogpost by Dominic Muller
- A git horror story: faking provenance with a loose nonce, by Tim Pettersen at Atlassian
- The Elements of Commit Style, a tiny "Git-book" for improving commit style, by Andrew Pennebaker
- Protected branches in Deveo 2.9.0, from Ilmari Kontulainen on their company blog
Git tools and sites
- Gerrit is now available in Docker containers from GerritForge/GitEnterprise
- first aid git, a searchable collection of the most frequently asked Git questions
- Legit is a complementary command-line interface for Git, optimized for workflow simplicity.
- multi-commit, a python tool for staging hunks and assigning them to multiple future commits
- cig checks all your git repos, reporting if any of them have changes or need to be pushed
- Similarly: checkgit is a gtk-based script to provide visual status of Git repositories
- Refer to a future commit sha1 in your commit message using git-time-travel
- The Ubuntu-related forge Launchpad is now offering Git hosting
- GitHub Extension for Visual Studio
This edition of Git Rev News was curated by Christian Couder <[email protected]>, Thomas Ferris Nicolaisen <[email protected]> and Nicola Paolucci <[email protected]> with help from Junio Hamano, Emma Jane Hogbin Westby and Jeff King.