TortoiseGit/Windows10 - Long File Name Support? - windows-10

When TortoiseGit was built, did it have an application manifest with 'longPathAware=TRUE'? Does the Window10 implmentation of TortoiseGit really support long file names?
(I don't want to build TortoiseGit from source code, I am interested in an answer to this question as it applies to the precompiled version of TortoiseGit for Windows 10.)
[reference: https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd]

TortoiseGit is not yet long path aware as some dependencies are not (as of 2.12.0).
Just having set longPathAware=TRUE won't help, also all buffers need to be long enough.
See https://tortoisegit.org/issue/1017

Related

How to setup with vim YCM

i want to move from using CMake to Premake for my current project, but im usig vim and the YCM plugin which is really great for making my setup like an IDE. However, the plugin needs compilation flags file which is produced when running CMake. Is there something for Premake to generate a file like that as well?
Premake does not do this in its current state (alpha 13). If you have some insights as to what is necessary for getting it to work, the best thing to do would be to submit a ticket in the issue tracker.
I'm afraid, if your new build system does not generate that compilation flags file (yet), you'll need to maintain your own (hand-crafted) one. You can find an example at https://github.com/Valloric/ycmd/blob/0e999dbee209ea79a522259816ce3a68b7d6cddc/examples/.ycm_extra_conf.py.
I would advice to have (at least) one per project rather than one generic one in your $HOME.
Although I have to admit, that it would be beneficial to get it created and in sync with the actual build system, I don't find it too troublesome to maintain it manually. At the end of the day it only contains the C++ standard you want to use, a set of preprocessor symbols and a set of both system and user include directories.

Move Emacs from Linux to Windows

I've had a break from programming the last two years and want to start up again. Right now I'm using a Windows computer, but my work and compiler is on my Linux computer.
My question is:
Is it possible to move my entire emacs work environment from Ubuntu to Windows 10? I did some changes in emacs back in the days that I got used to and would love to continue like that on my Windows computer.
Briefly...
The most important things to copy are your ~/.emacs.d directory and your init file (see C-hig (emacs)Init File for the different filenames this might have, or check with C-hv user-init-file).
See C-hig (emacs)Windows HOME regarding where the .emacs.d directory should live on your Windows system.
Note the comments in that Info node on the site-lisp directory as well, in case you've been using elisp libraries in there (possibly without realising), as they can form part of your Emacs configuration as well.
Any byte-compiled elisp (.elc files) should remain compatible so long as you're moving to an equal-or-newer version of Emacs (which sounds likely in this case). Natuarally things do change between releases, though, and it's possible to encounter incompatibilities when upgrading, but I wouldn't worry about that in advance -- try the latest version first, and if you run into problems that you can't solve (which shouldn't be very likely), you can always install the version of Emacs you were originally using.

Don't understand 'complete-items' in the vim help files

I am looking at the vim help files and looking for a variable on the linux version that is like v:completed_item from cygwin. v:completed_item is a:
Dictionary containing the complete-items for the most recently completed word after CompleteDone.  The Dictionary is empty if the completion failed.
I am looking for the same thing for Linux but I cannot find it and the closes thing I can find in the ins-completion help file is complete-item but nothing on how to use it anyone know how to use it? And if it will be the same as the completed_item from the cygwin version?
Thanks
The presence of a feature doesn't depend on the platform, it depends on the build type, version number, and patch-level.
If you want feature parity between two environments, you rather obviously must install the same build type and version number (including patches) on both environments.
FYI, that variable was added in patch 7.4.774.

Files not being overwritten even with REINSTALLMODE=amus

I'm pretty new to InstallShield - so bear with me.
I have created a Basic MSI installer that correctly installs our application and, until recently, every time I rebuilt it (with some new files for a new build of our application), it would replace the files with no issues.
However, I rebuilt it this morning with a new version, it flat out refuses to replace any files.
For example, out main exe now has a file version of 8.0.0.15, the one it is replacing is 8.0.0.13; the new modified and created date is 7/11/2013, the one it is replacing is 6/26/2013 for both - it still wont replace the old file with the new one (this is just 1 file in hundreds, but is the main exe and so it definitely gets changed with each release).
I have changed the properties of our own exe's and dll's to 'Always Overwrite' under 'Files and Folders' to no avail (I haven't touched the 3rd party dll's since they never changed).
I have changed the ResintallModeText to 'asum' to no avail - should I try 'asumv'?.
Before I have the application completely uninstall itself prior to reinstall, is there anything else I should be looking at to try and determine what may be preventing the installshield from replacing the files on the target machine?
I have no idea what could have changed to cause it to stop upgrading - we haven't had to make any changed to the installshield for some months since everything was running fine.
If you need logs or anything, let me know (though I can't get it to write out the installshield verbose log on install - but I can provide the Windows installer logs).
Thanks for your help!
Thanks to the comment from #anand which solved my problem as well. In my case, the executable was not updating even when I updated the product version (i.e. 1.0.001 to 1.0.002) and changing the package code for a new build.
The solution for me was to right-click on the executable in Files and Folders (in InstallShield) and select Properties. After checking "Always Overwrite" my executable now gets updated regardless of the product version or package code.

How are MS Visual C++ environments generally setup?

I come from a Java background, and the shop where I currently work refuses to use anything other than MS VC++ to build their legacy project. They don't appear to use any standards for setting up their build environment other than just building it using VS2005 and clicking the compile button.
I was wondering if there was anything closer to what Java had for instance:
A build tool like ANT or Maven
A directory structure that makes sense containing
src - Place for all my source files .c/.cpp/.h
lib - A place for any libraries that might be used in the project (.dll, .lib)
dist - A place for the output executable/distribution of the project
resources - A place for any images/sounds/text files that might be included in the project.
build.xml - Some sort of a build file (my guess would be something like ./configure or MAKEFILE)
Or am I asking too much from a C++ build environment? Is it just always as chaotic as the people in my shop make it out to be? I really have a hard time believing that considering the success of so many C++ projects on the internet.
It sounds like you have good intentions - coming form a non MSVC world I can see your points.
If I were in y our shoes I would definitely make a command line/automated build/build server.
You can use MSBuild for this - and hudson has a plugin for this. I usually have a "Build" directory near the root of the projects that contains scripts/etc that will call the appropriate MSBuild/.sln files.
The "makefiles" for Visual Studio are .sln and .vcproj files. You can call those with msbuild from the command line. You can also export a makefile (I think that is still an option) from within the IDE that you can run. I don;t recommend going that route though other than trying it out and seeing what is output - since that is what you are familiar with.
Both the vcproj and sln files are human readable - go through them - it will give you some useful information.
I would also agree that having a distributon directory is good - for building an installer/etc after the build. Copy all the needed binaries there - either in postbuild steps or in another script/etc.
Let us know what you end up doing.
I have one other piece of advice:
UPGRADE to VC/Dev studio 2008 or 2010. ASAP
MSVC does not impose any directory structure on you. There are some defaults, as mentioned above for the Debug and Release directories, for example, but even these can be overridden on a per-project basis. Use whatever directory structure makes sense to you.
Visual Studio does provide command line support if you don't want to use the IDE. See This MSDN Article for more information.
You can setup a proper build environment using Visual Studio (and for solutions with more than one project, you should), and there are a number of environment variables to use in the project configuration to set so that output files and intermediate files go to different folders than those defined by default.
In our large VS solution, we use e.g. obj/$(ProjectName)/$(ConfigurationName) as intermediate directory and bin/$(ConfigurationName) as output directory in all sub-projects.
All these things must be enforced by the user, and it seems that no single recommendation/best practice has evolved.
The standardized stuff:
The build tool: Visual Studio (doesn't need an extra product)
Build file: *.sln / *.vcproj (*.vbproj for Visual Basic, etc)
Directory structure: "Debug" and "Release" directories for the output binaries.
The rest isn't so much "chaotic" as "doesn't really matter". "Chaotic" suggests that it changes all the time, but in reality you just pick one for a project and stick with it. Companies may have internal standards across projects. It just doesn't matter enough to bother standardizing across companies. C++ is a complex language anyway; anyone with sufficient IQ to read C++ can deal with reasonable variation. The difference between \lib\ and \Library\ won't stop them.

Resources