visortelle commented on code in PR #824: URL: https://github.com/apache/pulsar-site/pull/824#discussion_r1512909507
########## contribute/setup-mergetool.md: ########## @@ -90,6 +90,78 @@ sudo apt install git-gui There are many tools available for this purpose, but `git gui` is one of the simplest and most effective. +### Additional Git tuning + +#### Git configuration + +Increase default renamed file detection limit with mergetool and difftool +```shell +git config --global merge.renameLimit 2048 +git config --global diff.renameLimit 2048 +``` + +Enable [rerere](https://git-scm.com/book/en/v2/Git-Tools-Rerere), "reuse recorded resolution" for Git. +```shell +git config --global rerere.enabled true Review Comment: I also thought about using Nix for all the tooling. We use it for our small projects without any issues. Same environment on the local machine and CI, and no need to install the proper versions of tools for each developer. The configuration file looks like: ``` { description = "Tools needed for X-Ray development."; inputs = { nixpkgs = { url = "nixpkgs/nixos-unstable"; }; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; flake-utils = { url = "github:numtide/flake-utils"; }; }; outputs = { self , nixpkgs , flake-compat , flake-utils , } @ inputs: flake-utils.lib.eachSystem [ flake-utils.lib.system.x86_64-linux flake-utils.lib.system.x86_64-darwin flake-utils.lib.system.aarch64-linux flake-utils.lib.system.aarch64-darwin ] ( system: let inherit (nixpkgs) lib; pkgs = import nixpkgs { system = system; config.allowBroken = true; }; protoc-gen-grpc-web = pkgs.callPackage ./nix/protoc-gen-grpc-web.nix { }; protoc-gen-scala = pkgs.callPackage ./nix/protoc-gen-scala.nix { }; missingSysPkgs = if pkgs.stdenv.isDarwin then [ pkgs.darwin.apple_sdk.frameworks.Foundation pkgs.darwin.libiconv ] else [ ]; runtimeLibraryPath = lib.makeLibraryPath ([ pkgs.zlib ]); pulsar-ui-dev = pkgs.mkShell { shellHook = '' export JAVA_HOME=$(echo "$(which java)" | sed 's/\/bin\/java//g' ) export GRAAL_HOME=$JAVA_HOME export NODE_OPTIONS=--max-old-space-size=4096 export LD_LIBRARY_PATH="${runtimeLibraryPath}" source ./dev-env.sh ''; packages = [ pkgs.gnumake pkgs.coreutils pkgs.nodejs-18_x pkgs.graalvm-ce pkgs.dotty pkgs.scalafmt pkgs.scalafix pkgs.sbt pkgs.maven pkgs.protobuf3_20 pkgs.buf protoc-gen-grpc-web protoc-gen-scala pkgs.pulumi-bin pkgs.kubectl pkgs.kubernetes-helm pkgs.awscli2 pkgs.aws-iam-authenticator pkgs.git pkgs.git-lfs pkgs.unzip ] ++ missingSysPkgs; }; in rec { packages = { }; packages.default = pulsar-ui-dev; devShells.default = pulsar-ui-dev; devShell = devShells.default; } ); } ``` ########## contribute/setup-mergetool.md: ########## @@ -90,6 +90,78 @@ sudo apt install git-gui There are many tools available for this purpose, but `git gui` is one of the simplest and most effective. +### Additional Git tuning + +#### Git configuration + +Increase default renamed file detection limit with mergetool and difftool +```shell +git config --global merge.renameLimit 2048 +git config --global diff.renameLimit 2048 +``` + +Enable [rerere](https://git-scm.com/book/en/v2/Git-Tools-Rerere), "reuse recorded resolution" for Git. +```shell +git config --global rerere.enabled true Review Comment: I also thought about using Nix for all the tooling. We use it for our small projects without any issues. Same environment on the local machine and CI, and no need to install the proper versions of tools for each developer. The configuration file looks like: ```nix { description = "Tools needed for X-Ray development."; inputs = { nixpkgs = { url = "nixpkgs/nixos-unstable"; }; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; flake-utils = { url = "github:numtide/flake-utils"; }; }; outputs = { self , nixpkgs , flake-compat , flake-utils , } @ inputs: flake-utils.lib.eachSystem [ flake-utils.lib.system.x86_64-linux flake-utils.lib.system.x86_64-darwin flake-utils.lib.system.aarch64-linux flake-utils.lib.system.aarch64-darwin ] ( system: let inherit (nixpkgs) lib; pkgs = import nixpkgs { system = system; config.allowBroken = true; }; protoc-gen-grpc-web = pkgs.callPackage ./nix/protoc-gen-grpc-web.nix { }; protoc-gen-scala = pkgs.callPackage ./nix/protoc-gen-scala.nix { }; missingSysPkgs = if pkgs.stdenv.isDarwin then [ pkgs.darwin.apple_sdk.frameworks.Foundation pkgs.darwin.libiconv ] else [ ]; runtimeLibraryPath = lib.makeLibraryPath ([ pkgs.zlib ]); pulsar-ui-dev = pkgs.mkShell { shellHook = '' export JAVA_HOME=$(echo "$(which java)" | sed 's/\/bin\/java//g' ) export GRAAL_HOME=$JAVA_HOME export NODE_OPTIONS=--max-old-space-size=4096 export LD_LIBRARY_PATH="${runtimeLibraryPath}" source ./dev-env.sh ''; packages = [ pkgs.gnumake pkgs.coreutils pkgs.nodejs-18_x pkgs.graalvm-ce pkgs.dotty pkgs.scalafmt pkgs.scalafix pkgs.sbt pkgs.maven pkgs.protobuf3_20 pkgs.buf protoc-gen-grpc-web protoc-gen-scala pkgs.pulumi-bin pkgs.kubectl pkgs.kubernetes-helm pkgs.awscli2 pkgs.aws-iam-authenticator pkgs.git pkgs.git-lfs pkgs.unzip ] ++ missingSysPkgs; }; in rec { packages = { }; packages.default = pulsar-ui-dev; devShells.default = pulsar-ui-dev; devShell = devShells.default; } ); } ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
