Yea, unnecessarily controversial title. The point is that if you want to link to some code, link to a particular version of that code, not the latest version of that code. The whole file could be deleted, let alone a change in line position.
The general concept was a markdown preprocessor that would include references to commits in git repositories and expand to the referenced content.
Because all the references were bound to a commit, then a) they were stable (if you used a hash rather than brach name), but more importantly b) you could determine when the file had changed and the documentation was possibly out of date.
it would generate a warning/error and one would have to update the documentation accordingly.
Anyway nice to see other people with the same underlying idea.
I really begin to like sourcegraph, nice job! I don't know how to ask the question without sounding too negative: any chance it might get faster? I took about 10 seconds (just a feeling, didn't measure it) to load the page.
I totally agree. The problem is not links to line numbers, that I found really useful, the problem is that these links must have a commit context otherwise they become unreliable.
If you use Sublime Text the Githubinator plugin provides shortcuts to create a permalink to GitHub for the current selection in your editor. I use it all the time - it's great.
> Then, tap the "y" key to jump to the last commit found for that region.
That's not actually what happens. Pressing "y" resolves the current reference (master, some tag, whatever). It has nothing to do with what you select, you're just following the pointer that is the current ref.
You can of course link to a line number on a specific commit. You don't need to avoid line numbers, you just need to link to a specific commit.
The y shortcut is super helpful though -- I was always trying to figure out how to get the the latest commit hash on my own before, clicking on the latest commit in history etc., very cumbersome.
This is important enough for linking to sourcecode (I agree), that I kind of wish github had an actual button for it on screen, instead of having to know the magic shortcut. But I realize github screen real estate is precious.
Is there a reasonable use case for linking to line-numbers on branch/tag on github? If not, it might be good UX to remove that option. i.e. only honour such links to immutable urls.
Further, even if you're looking at a mutable reference (like master), the line number links could/should be to the underlying immutable url (based on the commit).
If there is a marginal use case for linking to line numbers of mutable refs, perhaps it should be the non-default case, discoverable by keyboard shortcut like this...
Yes, in a team working remotely it is often useful to link to a specific chunk of code during a (voice or chat) conversation. Typically you're talking about the current code in a branch, and it is useful for the person clicking the link to know that we are in fact talking about HEAD and not a specific commit.
This is the equivalent of calling someone to your desk and pointing at the screen. It is fine if those links stop working a few hours later.
This works great unless you're rebasing and the commit hash you reference falls out of use. In PR comments that I expect to rebase again before release but for which I don't expect changes earlier in the file I'm referencing, I often live on the edge and link to the mutable diff. In the context of PR comments, you can edit them after the fact, so neither choice is necessarily game over - you can fix the line number or the commit hash you point to after the fact.
This has nothing to do with line numbers whatsoever, it's about constructing links using whatever commit the branch is currently on rather than linking to the branch. A regular link to a file using a branch reference could just as easily disappear completely as the branch reference moves.
[+] [-] joliss|11 years ago|reply
It'll instantly expand the URL to its canonical form, e.g.
https://github.com/sass/libsass/blob/master/parser.cpp#L29-L...
to
https://github.com/sass/libsass/blob/fca1f75a14fe5336c7b1a4b...
which stays valid indefinitely (unless the commit is deleted from the repo).
P.S. Hit the ? key for more keyboard awesomeness. :)
[+] [-] mapleoin|11 years ago|reply
[+] [-] kmike84|11 years ago|reply
[+] [-] tieTYT|11 years ago|reply
When I send someone a link, it's because I want them to see what I'm looking at.
[+] [-] enesunal|11 years ago|reply
[+] [-] yuchi|11 years ago|reply
[+] [-] wereHamster|11 years ago|reply
[+] [-] DougBTX|11 years ago|reply
[+] [-] 32bitkid|11 years ago|reply
https://github.com/32bitkid/zang
The general concept was a markdown preprocessor that would include references to commits in git repositories and expand to the referenced content.
Because all the references were bound to a commit, then a) they were stable (if you used a hash rather than brach name), but more importantly b) you could determine when the file had changed and the documentation was possibly out of date.
it would generate a warning/error and one would have to update the documentation accordingly.
Anyway nice to see other people with the same underlying idea.
[+] [-] sqs|11 years ago|reply
Like https://sourcegraph.com/code.google.com/p/go/.GoPackage/net/....
(Full disclosure: I'm one of the creators of Sourcegraph.)
[+] [-] patrickg|11 years ago|reply
[+] [-] potomak|11 years ago|reply
[+] [-] simonw|11 years ago|reply
https://github.com/ehamiter/ST2-GitHubinator
[+] [-] bjeanes|11 years ago|reply
That's not actually what happens. Pressing "y" resolves the current reference (master, some tag, whatever). It has nothing to do with what you select, you're just following the pointer that is the current ref.
[+] [-] jrochkind1|11 years ago|reply
The y shortcut is super helpful though -- I was always trying to figure out how to get the the latest commit hash on my own before, clicking on the latest commit in history etc., very cumbersome.
This is important enough for linking to sourcecode (I agree), that I kind of wish github had an actual button for it on screen, instead of having to know the magic shortcut. But I realize github screen real estate is precious.
[+] [-] jbert|11 years ago|reply
Further, even if you're looking at a mutable reference (like master), the line number links could/should be to the underlying immutable url (based on the commit).
If there is a marginal use case for linking to line numbers of mutable refs, perhaps it should be the non-default case, discoverable by keyboard shortcut like this...
[+] [-] warp|11 years ago|reply
This is the equivalent of calling someone to your desk and pointing at the screen. It is fine if those links stop working a few hours later.
[+] [-] augustl|11 years ago|reply
[+] [-] mtdewcmu|11 years ago|reply
[+] [-] jmileham|11 years ago|reply
[+] [-] sergiosgc|11 years ago|reply
[+] [-] albertzeyer|11 years ago|reply
[+] [-] pjtr|11 years ago|reply
[+] [-] nathell|11 years ago|reply
[+] [-] adamwong246|11 years ago|reply
[+] [-] ttty|11 years ago|reply
[+] [-] ad_hominem|11 years ago|reply
[+] [-] trebor|11 years ago|reply
[+] [-] bttf|11 years ago|reply
[+] [-] fjcaetano|11 years ago|reply
[+] [-] WorldWideWayne|11 years ago|reply
[+] [-] danneu|11 years ago|reply
An accurate title would look more like "Use commit-specific links when linking to line numbers on Github".
[+] [-] nkjoep|11 years ago|reply
[deleted]
[+] [-] kernelcurry|11 years ago|reply
[+] [-] simonw|11 years ago|reply
[+] [-] ef4|11 years ago|reply