Comments (7)
This script only covers the "update" step, you still have to "init" first:
bootstrap:
git submodule init
./borg-bootstrap
make
from emacs.g.
Thanks for the feedback!
But these benefits are not worth a >2 second increase in init time for me
Are you using Windows? If so, you might want to try again. On that OS a big slowdown was due to git config
being called many times during startup and that has been fixed with emacscollective/borg@fac64ed.
I'm curious where [performance] would rank on your priorities for borg?
Not very high, that being said, I wasn't aware of the above issue until shortly before I addressed it, so if there are other performance issues and someone tells me about them, then I might to something about them anyway.
Oh also, I couldn't figure out a convenient way to update packages across the board at once.
There currently isn't a command to do that, and I probably won't add one to borg itself, but there is a change cooking in magit (which somehow ended up on the slow-lane, in a quite unusual fashion). The original pr is magit/magit#2674, but it is more likely that something like https://github.com/magit/magit/tree/np/submodules-v2 will be merged (I am going to rebase that shortly).
from emacs.g.
Hm, I guess by manually, it means:
cd lib/no-littering
git remote add justbur [email protected]:justbur/no-littering.git
git fetch --all
git checkout $RELEVANT_COMMIT
Then git submodule update
will continue. So you're right, this is really tedious, and there should be a better way :).
from emacs.g.
This is the main reason I released Borg as v0.1.0
instead of v1.0.0
. It's a major issue, which I think would be best fixed by teaching git submodule
itself about "additional remotes".
Meanwhile you can use this script. You should add that to the .emacs.d
repository and adjust Makefile
to call it, instead of git submodule update
.
You then have to set the additional remotes in .gitmodules
, e.g.:
[submodule "no-littering"]
path = lib/no-littering
url = [email protected]:tarsius/no-littering.git
extra-remote = justbur [email protected]:justbur/no-littering.git
from emacs.g.
Cool, I'll try it out. To be clear, by bootstrap task should be as follows?
bootstrap:
./borg-bootstrap
make
from emacs.g.
The emacs.g
collective now ships with the borg-bootstrap
script and uses it for the bootstrap
make target. submodule.NAME.extra-remote
has been renamed to just submodule.NAME.remote
. The documentation has been updated accordingly, but I haven't released a new borg
version since I have don this.
By the way, are you still using borg
? Care to share your experience?
from emacs.g.
I like borg, but the thing that kept me from completely moving over to it is that for the same set of packages, borg-initialize simply took longer than package-initialize.
The smoother workflow to fork and contribute to packages was really nice. I like being able to maintain a branch of a package long-term, with my additions. I also like that conceptually it's a bit more "bare metal" than package.el. You're managing your packages with git, not elisp. But these benefits are not worth a >2 second increase in init time for me, and I would love it if the conceptually leaner and meaner borg also felt more lightweight at startup. I'm curious where this would rank on your priorities for borg?
Oh also, I couldn't figure out a convenient way to update packages across the board at once.
from emacs.g.
Related Issues (17)
- Gitlab link 404's HOT 3
- Missing magit/ghub drone. HOT 4
- `epkg` SHA in .gitmodules isn't present in repository HOT 1
- [Documentation] Howto create a private fork that still tracks emacs.g? HOT 4
- Clarify emacs.g License HOT 2
- submodules all on read/write repos HOT 2
- Running `make bootstrap` fails because var/ does not exist HOT 3
- How to use this starter to begin? HOT 14
- Cannot load sisyphus: (file-missing "Cannot open load file" "No such file or directory" "llama") HOT 1
- dash is loaded twice HOT 1
- Warnings on `make bootstrap` HOT 3
- Failed to bootstrap when cloning this repo as a git submodule HOT 3
- Subproject commit-foo-dirty HOT 4
- use-package :bind with :map keyword does not work HOT 7
- Common ways to define some complex drones HOT 2
- assimilating results in "Not a git repository" error HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from emacs.g.