I am considering using straight.el
, but reading the docs, I have difficulties to understand whether the particular use cases I am interested in are handled as I hope to. Here are the cases:
I have some packages of my own which are hosted on github. Currently, I have a local git repository, and I
git fetch
it to a directory within theload-path
. So I basically hope that by usingstraight.el
, I could reduce it to one directory, the local git repository. But what happens when I edit a file in this repository? As far as I understand,straight.el
will detect the modified file and rebuild the package. But that would mean that I cannot properly develop the package because it will always affect my current setup. So how do we get around that? Would I need, say, spin off adevelop
branch and tellstraight.el
to use themaster
branch? I do not understand howstraight.el
would handle the case that the current branch is not the branch which should be used for compiling and packaging.The second use case is actually very similar: I clone a github repo and want to edit it, possible to create a PR. Again, my question is: How do I prevent that my edit destroys my current setup, or that it is destroyed when the repo is fetched again from upstream?
Maybe someone could help me to clarify this. If these use cases are not handled properly, I won't change to straight.el
, I guess.
straight.el
always builds from master and thus would allow me to keep uncommitted changes without interfering with the regular build. I guess I am asking that the function instraight.el
which recognizes that a package has been modified only considers the committed version, and not the unstaged stuff which I might be still working on...straight.el
does not know anything about git (well, not strictly true: it does know how to clone a git repo but that's all): it just looks at the directory where the package is installed and checks if anything is changed. It is up to you to make sure that you don't change anything in there (unless you want a rebuild). At least, that's how I read the doc.