aboutsummaryrefslogtreecommitdiff
path: root/content/blog/git-link-and-sourcegraph.md
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2024-12-06 17:37:28 -0800
committerFranck Cuny <franck@fcuny.net>2024-12-06 17:37:41 -0800
commit0a350777002ba638bcd44eb23db323b12f7c5d9e (patch)
treef512c7c320e34d301c4f3715f16a098552c2b530 /content/blog/git-link-and-sourcegraph.md
parentsome style changes for the default template (diff)
downloadfcuny.net-0a350777002ba638bcd44eb23db323b12f7c5d9e.tar.gz
get rid of sections
I use tags to organize things.
Diffstat (limited to 'content/blog/git-link-and-sourcegraph.md')
-rw-r--r--content/blog/git-link-and-sourcegraph.md52
1 files changed, 0 insertions, 52 deletions
diff --git a/content/blog/git-link-and-sourcegraph.md b/content/blog/git-link-and-sourcegraph.md
deleted file mode 100644
index c86b465..0000000
--- a/content/blog/git-link-and-sourcegraph.md
+++ /dev/null
@@ -1,52 +0,0 @@
-+++
-title = "emacs' git-link and sourcegraph"
-date = 2021-08-24
-[taxonomies]
-tags = ["emacs"]
-+++
-
-I use [sourcegraph](https://sourcegraph.com/) for searching code, and I sometimes need to share a link to the source code I'm looking at in a buffer. For this, the package [`git-link`](https://github.com/sshaw/git-link) is great.
-
-To integrate sourcegraph and `git-link`, the [documentation](https://github.com/sshaw/git-link#sourcegraph) recommends adding a remote entry named `sourcegraph` in the repository, like this:
-
-```bash
-git remote add sourcegraph https://sourcegraph.com/github.com/sshaw/copy-as-format
-```
-
-The next time you run `M-x git-link` in a buffer, it will use the URL associated with that remote. That's works great, except that now you need to add this for every repository. Instead, for my usage, I came up with the following solution:
-
-```lisp
-(use-package git-link
- :ensure t
- :after magit
- :bind (("C-c g l" . git-link)
- ("C-c g a" . git-link-commit))
- :config
- (defun fcuny/get-sg-remote-from-hostname (hostname)
- (format "sourcegraph.<$domain>.<$tld>/%s" hostname))
-
- (defun fcuny/git-link-work-sourcegraph (hostname dirname filename _branch commit start end)
- ;;; For a given repository, build the proper link for sourcegraph.
- ;;; Use the default branch of the repository instead of the
- ;;; current one (we might be on a feature branch that is not
- ;;; available on the remote).
- (require 'magit-branch)
- (let ((sg-base-url (fcuny/get-sg-remote-from-hostname hostname))
- (main-branch (magit-main-branch)))
- (git-link-sourcegraph sg-base-url dirname filename main-branch commit start end)))
-
- (defun fcuny/git-link-commit-work-sourcegraph (hostname dirname commit)
- (let ((sg-base-url (fcuny/get-sg-remote-from-hostname hostname)))
- (git-link-commit-sourcegraph sg-base-url dirname commit)))
-
- (add-to-list 'git-link-remote-alist '("twitter" fcuny/git-link-work-sourcegraph))
- (add-to-list 'git-link-commit-remote-alist '("twitter" fcuny/git-link-commit-work-sourcegraph))
-
- (setq git-link-open-in-browser 't))
-```
-
-We use different domains to host various git repositories at work (e.g. `git.$work`, `gitfoo.$work`, etc). Each of them map to a different URI for sourcegraph (e.g. `sourcegraph.$work/gitfoo`).
-
-`git-link-commit-remote-alist` is an [association list](https://www.gnu.org/software/emacs/manual/html_node/elisp/Association-Lists.html) that takes a regular expression and a function. The custom function receives the hostname for the remote repository, which is then used to generate the URI for our sourcegraph instance. I then call `git-link-sourcegraph` replacing the hostname with the URI for sourcegraph.
-
-Now I can run `M-x git-link` in any repository where the host for the origin git repository matches `twitter` without having to setup the custom remote first.