יונ 13

?Who Moved My Cheese? || Who git commit it

Working in a group of developers on a large open source project like Moodle, I get times where I need to dig in and find who made a specific change to the code and most importantly… WHY? getting the developer’s name can help get in contact with him/her to figure out why was that piece of code was introduced. And if he/she is not available, I can infer from the commit the issue id and use the development system (#Moodle uses Atlassian’s Jira – the Tracker) to find out what was the reason it was introduced.

Laziness above all… I tried the GUI tools first:

  • phpStorm (138.379) – When viewing a source code file, I can click on git – show history, And get all the git commit logs of that specific file. I can click ctrl-d and compare each on with the current version. But no string search for a specific change in a specific file 🙁 and no easy way to find out what commit introduced a specific line of code (as far as I know). now way to git blame 🙁 (edit: after posting this, I found out that phpStorm can, amazingly, do it: Can Git show history for selected lines?)
  • gitk – Using the search tool and setting it to “Find commit: adding/removing string:” and clicking the “down arrow” while viewing the code in patch mode, I can see the list of changes, BUT I have to read through a lot of code in each commit to find the line I am looking for. not easy 🙁
  • git gui blame [file] – which was nice but no searching and only got me as far as the last committer. Same as what I got off the github.com blame view for that file.

Next, the internet…

Luck me, help was coming from the open source Moodle developer community. Tim hunt which is a long time respected UK Open University developer in the Moodle community started throwing pearls of digested wizdom at me which helped me figure out which commit was responsible for that specific piece of code (a string) that I was looking for and when it was initially introduced into the code. Here are those pearls:

One pearl was to:

git blame last-commit-hash^ path/filename | grep "string"

Looking at the results, I found out the one that seems relevant and:

git show "commit-hash"

Another pearl was:

git log -S 'string' path/filename

So, thank you Tim hunt and I hope it’s useful for anyone else doing archeological digging into open source projects using git.

ינו 15

Openshift Moodle Quickstart by burningTyger

Moodle for Openshift Moodle is a well known learning management system lms used by many schools and organisations around the world. If you need a personal install or a platform for a small school this Openshift Quickstart might be the right thing for you. Openshift offers a 500MB instance for free which is more than enough if you just need something that works and you still have the options to scale your application if you have to.If you’re ready to start follow this manual…

פורסם ב-Openshift Moodle Quickstart by burningTyger.

יונ 13

גיט ותעלומות זן | ליקוטי שיבולים

” משהו קליל ומשעשע, בין חג לשבת. כמו כל מערכת, גם ל-Git  יש מורכבות פנימית שלא תמיד מובנת למי שמשתמש בה.”  לאה כהן. אורט.

המשיכו לקרוא את הפרסום המלאה, כולל התגובות המלומדות ב-גיט ותעלומות זן | ליקוטי שיבולים.