-
-
Notifications
You must be signed in to change notification settings - Fork 297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Eliminate the symlinks in the project #1667
Comments
Also, for the record, since I am scripting all of this I simply added this to the script I use to
That "fixed" the unexpected "make all-checks" failure on my Windows VM. However, executing that command on my VM's shouldn't be necessary. |
Also, automating running the lint tests revealed that
I'll open a separate issue and pull-request to address that lint error on Windows. |
Also, as I have mentioned in previous issues, and pull-requests, checking code correctness (i.e., "linting" the code) should output nothing if the code has no problems. As oppossed to the current behavior. This is from running
In the example above I don't care about any of its output since it does not tell me there is a lint problem. I only care if the lint checks produce an error. I do not care about executing a check that does not identify a problem. |
I'll replace I am aware of the classical "rule of silence", but given that |
Okay, we'll have to agree to disagree. :-) What about adding an env var that tells the linters to be silent if no problems are found? The default being the current behavior. That would only slightly complicate the existing linting scripts. Suppressing the output of a "clean" lint run is especially useful when I do something like this:
I've modified my
This is fragile and high-maintenance. I'd prefer to eliminate that text constant in my |
Also, I'll note that I believe the comparison to
|
So you're already redirecting and processing the outputs of Maybe the real issue here is that the output of the linting script should be made easier to parse? That's something I cam get behind. |
I added an
elint
subcommand to myvm
command that runsmake all-checks
on each VM that I use for exploring/verifying changes to Elvish (as well as other projects). Themake all-checks
fails on Windows because the vscode\LICENSE file is no longer a symlink (I'm using thersync
command to copy the project to Windows). This causes Git to report this:Which causes an unexpected error from
make all-checks
on Windows.Ideally there would be no symlinks in the project since they are not portable to non-Unix systems. However, telling Git to assume the symlink is unchanging via
git update-index --assume-unchanged
may be an acceptable workaround. I have verified that resolves this issue. That is, I ran this on my macOS server:I then
rsync
'd the project to Windows and verified thatgit status
no longer reported a "typechange" for that file. However, I could not create a Git commit that only includes that change to the project. I'm hoping that if @xiaq executes that command on the master branch and (force-)pushes the branch to Github that will then be picked up by all other developers. Alternatively, just replace the symlink with an actual copy of the license or replace the symlink with text that explicitly refers to the official license via a URL.P.S., There is a second, optional, symlink, ./.git/hooks/pre-push. Its presence doesn't cause any problems when syncing the project to a Windows system. It could theoretically cause problems if someone working on a Windows system modified the linked to ./tools/pre-push script without modifying the copy "linked to" by ./.git/hooks/pre-push that is effectively a non-problem. Too, given the special nature of the ./.git directory there is no practical way to eliminate that, optional, symlink AFAICT. At least not without requiring the user to copy the ./tools/pre-push script to ./.git/hooks/pre-push. Which has its own version skew problems.
The text was updated successfully, but these errors were encountered: