From df8f507f411fd71e649e9a896f53c2e574558525 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 6 Oct 2021 14:44:27 +1100 Subject: Cleanup: spelling in comments --- intern/cycles/kernel/geom/geom_shader_data.h | 2 +- intern/cycles/kernel/kernel_shader.h | 4 ++-- intern/cycles/kernel/kernel_types.h | 2 +- intern/ghost/intern/GHOST_SystemPathsUnix.cpp | 4 ++-- intern/ghost/intern/GHOST_SystemX11.cpp | 4 ++-- source/blender/blenfont/intern/blf_internal_types.h | 2 +- source/blender/blenkernel/intern/editmesh_bvh.c | 2 +- source/blender/blenkernel/intern/image.c | 11 +++++------ source/blender/blenkernel/intern/mask_rasterize.c | 2 +- source/blender/blenkernel/intern/vfont.c | 12 ++++++------ source/blender/blenkernel/intern/vfontdata_freetype.c | 2 +- source/blender/blenlib/BLI_array.hh | 2 +- source/blender/editors/interface/interface.c | 2 +- source/blender/editors/object/object_bake_api.c | 2 +- source/blender/editors/render/render_preview.c | 2 +- source/blender/editors/space_view3d/view3d_draw.c | 6 +++--- source/blender/imbuf/intern/jp2.c | 2 +- source/blender/imbuf/intern/oiio/openimageio_api.cpp | 2 +- source/blender/imbuf/intern/png.c | 2 +- source/blender/imbuf/intern/tiff.c | 4 +--- source/blender/io/avi/intern/avi_rgb.c | 2 +- source/blender/makesdna/DNA_gpencil_modifier_types.h | 2 +- source/blender/nodes/shader/nodes/node_shader_valToRgb.cc | 4 ++-- source/blender/python/intern/bpy_rna.c | 2 +- source/blender/render/intern/texture_procedural.c | 2 +- .../blender/simulation/intern/ConstrainedConjugateGradient.h | 4 ++-- 26 files changed, 42 insertions(+), 45 deletions(-) diff --git a/intern/cycles/kernel/geom/geom_shader_data.h b/intern/cycles/kernel/geom/geom_shader_data.h index 0e373c10086..5dc03940238 100644 --- a/intern/cycles/kernel/geom/geom_shader_data.h +++ b/intern/cycles/kernel/geom/geom_shader_data.h @@ -37,7 +37,7 @@ ccl_device void shader_setup_object_transforms(const KernelGlobals *ccl_restrict #endif /* TODO: break this up if it helps reduce register pressure to load data from - * global memory as we write it to shaderdata. */ + * global memory as we write it to shader-data. */ ccl_device_inline void shader_setup_from_ray(const KernelGlobals *ccl_restrict kg, ShaderData *ccl_restrict sd, const Ray *ccl_restrict ray, diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index e7133724c85..a50f3fb214b 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -780,8 +780,8 @@ ccl_device_inline void shader_eval_volume(INTEGRATOR_STATE_CONST_ARGS, break; } - /* setup shaderdata from stack. it's mostly setup already in - * shader_setup_from_volume, this switching should be quick */ + /* Setup shader-data from stack. it's mostly setup already in + * shader_setup_from_volume, this switching should be quick. */ sd->object = entry.object; sd->lamp = LAMP_NONE; sd->shader = entry.shader; diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 1a986c58878..6107e1028ba 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -190,7 +190,7 @@ enum SamplingPattern { SAMPLING_NUM_PATTERNS, }; -/* these flags values correspond to raytypes in osl.cpp, so keep them in sync! */ +/* These flags values correspond to `raytypes` in `osl.cpp`, so keep them in sync! */ enum PathRayFlag { /* -------------------------------------------------------------------- diff --git a/intern/ghost/intern/GHOST_SystemPathsUnix.cpp b/intern/ghost/intern/GHOST_SystemPathsUnix.cpp index b58799e9c2a..8bc2ff9227d 100644 --- a/intern/ghost/intern/GHOST_SystemPathsUnix.cpp +++ b/intern/ghost/intern/GHOST_SystemPathsUnix.cpp @@ -142,7 +142,7 @@ const char *GHOST_SystemPathsUnix::getUserSpecialDir(GHOST_TUserSpecialDirTypes } static string path = ""; - /* Pipe stderr to /dev/null to avoid error prints. We will fail gracefully still. */ + /* Pipe `stderr` to `/dev/null` to avoid error prints. We will fail gracefully still. */ string command = string("xdg-user-dir ") + type_str + " 2> /dev/null"; FILE *fstream = popen(command.c_str(), "r"); @@ -152,7 +152,7 @@ const char *GHOST_SystemPathsUnix::getUserSpecialDir(GHOST_TUserSpecialDirTypes std::stringstream path_stream; while (!feof(fstream)) { char c = fgetc(fstream); - /* xdg-user-dir ends the path with '\n'. */ + /* `xdg-user-dir` ends the path with '\n'. */ if (c == '\n') { break; } diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 86b4245ca67..ab8039ea95d 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -1044,7 +1044,7 @@ void GHOST_SystemX11::processEvent(XEvent *xe) #ifdef USE_NON_LATIN_KB_WORKAROUND /* XXX: Code below is kinda awfully convoluted... Issues are: - * - In keyboards like latin ones, numbers need a 'Shift' to be accessed but key_sym + * - In keyboards like Latin ones, numbers need a 'Shift' to be accessed but key_sym * is unmodified (or anyone swapping the keys with `xmodmap`). * - #XLookupKeysym seems to always use first defined key-map (see T47228), which generates * key-codes unusable by ghost_key_from_keysym for non-Latin-compatible key-maps. @@ -1131,7 +1131,7 @@ void GHOST_SystemX11::processEvent(XEvent *xe) } } #else - /* In keyboards like latin ones, + /* In keyboards like Latin ones, * numbers needs a 'Shift' to be accessed but key_sym * is unmodified (or anyone swapping the keys with xmodmap). * diff --git a/source/blender/blenfont/intern/blf_internal_types.h b/source/blender/blenfont/intern/blf_internal_types.h index 38d7d7b6e21..e90f82da7f3 100644 --- a/source/blender/blenfont/intern/blf_internal_types.h +++ b/source/blender/blenfont/intern/blf_internal_types.h @@ -152,7 +152,7 @@ typedef struct FontBufInfoBLF { struct ColorManagedDisplay *display; /* and the color, the alphas is get from the glyph! - * color is srgb space */ + * color is sRGB space */ float col_init[4]; /* cached conversion from 'col_init' */ unsigned char col_char[4]; diff --git a/source/blender/blenkernel/intern/editmesh_bvh.c b/source/blender/blenkernel/intern/editmesh_bvh.c index 087481b1b5d..5058863912f 100644 --- a/source/blender/blenkernel/intern/editmesh_bvh.c +++ b/source/blender/blenkernel/intern/editmesh_bvh.c @@ -221,7 +221,7 @@ static void bmbvh_tri_from_face(const float *cos[3], } } -/* taken from bvhutils.c */ +/* Taken from `bvhutils.c`. */ /* -------------------------------------------------------------------- */ /* BKE_bmbvh_ray_cast */ diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index b993d743044..2a0f8a597d1 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -1560,9 +1560,9 @@ bool BKE_imtype_requires_linear_float(const char imtype) char BKE_imtype_valid_channels(const char imtype, bool write_file) { - char chan_flag = IMA_CHAN_FLAG_RGB; /* assume all support rgb */ + char chan_flag = IMA_CHAN_FLAG_RGB; /* Assume all support RGB. */ - /* alpha */ + /* Alpha. */ switch (imtype) { case R_IMF_IMTYPE_BMP: if (write_file) { @@ -1583,7 +1583,7 @@ char BKE_imtype_valid_channels(const char imtype, bool write_file) break; } - /* bw */ + /* BW. */ switch (imtype) { case R_IMF_IMTYPE_BMP: case R_IMF_IMTYPE_PNG: @@ -3078,8 +3078,7 @@ int BKE_imbuf_write_as(ImBuf *ibuf, const char *name, ImageFormatData *imf, cons ImBuf ibuf_back = *ibuf; int ok; - /* all data is rgba anyway, - * this just controls how to save for some formats */ + /* All data is RGBA anyway, this just controls how to save for some formats. */ ibuf->planes = imf->planes; ok = BKE_imbuf_write(ibuf, name, imf); @@ -4611,7 +4610,7 @@ static ImBuf *load_image_single(Image *ima, image_init_after_load(ima, iuser, ibuf); *r_assign = true; - /* make packed file for autopack */ + /* Make packed file for auto-pack. */ if ((has_packed == false) && (G.fileflags & G_FILE_AUTOPACK)) { ImagePackedFile *imapf = MEM_mallocN(sizeof(ImagePackedFile), "Image Pack-file"); BLI_addtail(&ima->packedfiles, imapf); diff --git a/source/blender/blenkernel/intern/mask_rasterize.c b/source/blender/blenkernel/intern/mask_rasterize.c index e04e5fceec6..0c40a1b5078 100644 --- a/source/blender/blenkernel/intern/mask_rasterize.c +++ b/source/blender/blenkernel/intern/mask_rasterize.c @@ -151,7 +151,7 @@ BLI_INLINE unsigned int clampis_uint(const unsigned int v, } /* --------------------------------------------------------------------- */ -/* local structs for mask rasterizeing */ +/* local structs for mask rasterizing */ /* --------------------------------------------------------------------- */ /** diff --git a/source/blender/blenkernel/intern/vfont.c b/source/blender/blenkernel/intern/vfont.c index 01c232e5a70..43c8a59baad 100644 --- a/source/blender/blenkernel/intern/vfont.c +++ b/source/blender/blenkernel/intern/vfont.c @@ -342,12 +342,12 @@ VFont *BKE_vfont_load(Main *bmain, const char *filepath) vfont->data = vfd; BLI_strncpy(vfont->filepath, filepath, sizeof(vfont->filepath)); - /* if autopack is on store the packedfile in de font structure */ + /* if auto-pack is on store the packed-file in de font structure */ if (!is_builtin && (G.fileflags & G_FILE_AUTOPACK)) { vfont->packedfile = pf; } - /* Do not add FO_BUILTIN_NAME to temporary listbase */ + /* Do not add #FO_BUILTIN_NAME to temporary list-base. */ if (!STREQ(filename, FO_BUILTIN_NAME)) { vfont->temp_pf = BKE_packedfile_new(NULL, filepath, BKE_main_blendfile_path(bmain)); } @@ -694,7 +694,7 @@ struct TempLineInfo { float x_min; /* left margin */ float x_max; /* right margin */ int char_nr; /* number of characters */ - int wspace_nr; /* number of whitespaces of line */ + int wspace_nr; /* number of white-spaces of line */ }; /* -------------------------------------------------------------------- */ @@ -803,7 +803,7 @@ static bool vfont_to_curve(Object *ob, float longest_line_length = 0.0f; /* Text at the beginning of the last used text-box (use for y-axis alignment). - * We overallocate by one to simplify logic of getting last char. */ + * We over-allocate by one to simplify logic of getting last char. */ int *i_textbox_array = MEM_callocN(sizeof(*i_textbox_array) * (cu->totbox + 1), "TextBox initial char index"); @@ -1136,7 +1136,7 @@ static bool vfont_to_curve(Object *ob, } } - /* linedata is now: width of line */ + /* Line-data is now: width of line. */ if (cu->spacemode != CU_ALIGN_X_LEFT) { ct = chartransdata; @@ -1500,7 +1500,7 @@ static bool vfont_to_curve(Object *ob, chartransdata = NULL; } else if (mode == FO_EDIT) { - /* make nurbdata */ + /* Make NURBS-data. */ BKE_nurbList_free(r_nubase); ct = chartransdata; diff --git a/source/blender/blenkernel/intern/vfontdata_freetype.c b/source/blender/blenkernel/intern/vfontdata_freetype.c index caeb016aaa3..bd58d156d06 100644 --- a/source/blender/blenkernel/intern/vfontdata_freetype.c +++ b/source/blender/blenkernel/intern/vfontdata_freetype.c @@ -100,7 +100,7 @@ static VChar *freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData * /* Start converting the FT data */ onpoints = (int *)MEM_callocN((ftoutline.n_contours) * sizeof(int), "onpoints"); - /* get number of on-curve points for beziertriples (including conic virtual on-points) */ + /* Get number of on-curve points for bezier-triples (including conic virtual on-points). */ for (j = 0, contour_prev = -1; j < ftoutline.n_contours; j++) { const int n = ftoutline.contours[j] - contour_prev; contour_prev = ftoutline.contours[j]; diff --git a/source/blender/blenlib/BLI_array.hh b/source/blender/blenlib/BLI_array.hh index 352bf379d4d..32588b7450d 100644 --- a/source/blender/blenlib/BLI_array.hh +++ b/source/blender/blenlib/BLI_array.hh @@ -31,7 +31,7 @@ * * A main benefit of using Array over Vector is that it expresses the intent of the developer * better. It indicates that the size of the data structure is not expected to change. Furthermore, - * you can be more certain that an array does not overallocate. + * you can be more certain that an array does not over-allocate. * * blender::Array supports small object optimization to improve performance when the size turns out * to be small at run-time. diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 39ad88c3368..9a294162f34 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -2557,7 +2557,7 @@ double ui_but_value_get(uiBut *but) void ui_but_value_set(uiBut *but, double value) { - /* value is a hsv value: convert to rgb */ + /* Value is a HSV value: convert to RGB. */ if (but->rnaprop) { PropertyRNA *prop = but->rnaprop; diff --git a/source/blender/editors/object/object_bake_api.c b/source/blender/editors/object/object_bake_api.c index 475e0e581fb..98f85823bb3 100644 --- a/source/blender/editors/object/object_bake_api.c +++ b/source/blender/editors/object/object_bake_api.c @@ -697,7 +697,7 @@ static bool bake_targets_init_image_textures(const BakeAPIRender *bkr, } } - /* Overallocate in case there is more materials than images. */ + /* Over-allocate in case there is more materials than images. */ targets->num_materials = num_materials; targets->images = MEM_callocN(sizeof(BakeImage) * targets->num_materials, "BakeTargets.images"); targets->material_to_image = MEM_callocN(sizeof(int) * targets->num_materials, diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 81aecfdf788..6f49b03f07f 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -1343,7 +1343,7 @@ static ImBuf *icon_preview_imbuf_from_brush(Brush *brush) BLI_strncpy(path, brush->icon_filepath, sizeof(brush->icon_filepath)); BLI_path_abs(path, ID_BLEND_PATH_FROM_GLOBAL(&brush->id)); - /* use default colorspaces for brushes */ + /* Use default color-spaces for brushes. */ brush->icon_imbuf = IMB_loadiffname(path, flags, NULL); /* otherwise lets try to find it in other directories */ diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 1cfd83c503e..733ec7e81cd 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -780,9 +780,9 @@ static void drawviewborder(Scene *scene, Depsgraph *depsgraph, ARegion *region, immUniformThemeColorShadeAlpha(TH_VIEW_OVERLAY, 100, 255); /* TODO: Was using: - * UI_draw_roundbox_4fv(false, rect.xmin, rect.ymin, rect.xmax, rect.ymax, 2.0f, color); - * We'll probably need a new imm_draw_line_roundbox_dashed dor that - though in practice the - * 2.0f round corner effect was nearly not visible anyway... */ + * `UI_draw_roundbox_4fv(false, rect.xmin, rect.ymin, rect.xmax, rect.ymax, 2.0f, color);` + * We'll probably need a new imm_draw_line_roundbox_dashed or that - though in practice the + * 2.0f round corner effect was nearly not visible anyway. */ imm_draw_box_wire_2d(shdr_pos, rect.xmin, rect.ymin, rect.xmax, rect.ymax); } diff --git a/source/blender/imbuf/intern/jp2.c b/source/blender/imbuf/intern/jp2.c index 117e0d97b2e..83e93f16f1b 100644 --- a/source/blender/imbuf/intern/jp2.c +++ b/source/blender/imbuf/intern/jp2.c @@ -848,7 +848,7 @@ static opj_image_t *ibuftoimage(ImBuf *ibuf, opj_cparameters_t *parameters) chanel_colormanage_cb = channel_colormanage_noop; } else { - /* standard linear-to-srgb conversion if float buffer wasn't managed */ + /* standard linear-to-SRGB conversion if float buffer wasn't managed */ chanel_colormanage_cb = linearrgb_to_srgb; } diff --git a/source/blender/imbuf/intern/oiio/openimageio_api.cpp b/source/blender/imbuf/intern/oiio/openimageio_api.cpp index 3ad902a241d..22533b04b58 100644 --- a/source/blender/imbuf/intern/oiio/openimageio_api.cpp +++ b/source/blender/imbuf/intern/oiio/openimageio_api.cpp @@ -221,7 +221,7 @@ struct ImBuf *imb_load_photoshop(const char *filename, int flags, char colorspac string ics = spec.get_string_attribute("oiio:ColorSpace"); BLI_strncpy(file_colorspace, ics.c_str(), IM_MAX_SPACE); - /* only use colorspaces exis */ + /* Only use color-spaces exist. */ if (colormanage_colorspace_get_named(file_colorspace)) { strcpy(colorspace, file_colorspace); } diff --git a/source/blender/imbuf/intern/png.c b/source/blender/imbuf/intern/png.c index 26f0f11a001..aaf56b1daa0 100644 --- a/source/blender/imbuf/intern/png.c +++ b/source/blender/imbuf/intern/png.c @@ -153,7 +153,7 @@ bool imb_savepng(struct ImBuf *ibuf, const char *filepath, int flags) chanel_colormanage_cb = channel_colormanage_noop; } else { - /* standard linear-to-srgb conversion if float buffer wasn't managed */ + /* Standard linear-to-SRGB conversion if float buffer wasn't managed. */ chanel_colormanage_cb = linearrgb_to_srgb; } diff --git a/source/blender/imbuf/intern/tiff.c b/source/blender/imbuf/intern/tiff.c index 3625d7d1af2..7b68e3f3bea 100644 --- a/source/blender/imbuf/intern/tiff.c +++ b/source/blender/imbuf/intern/tiff.c @@ -895,9 +895,7 @@ bool imb_savetiff(ImBuf *ibuf, const char *filepath, int flags) copy_v3_v3(rgb, &fromf[from_i]); } else { - /* Standard linear-to-srgb conversion if float buffer - * wasn't managed. - */ + /* Standard linear-to-SRGB conversion if float buffer wasn't managed. */ linearrgb_to_srgb_v3_v3(rgb, &fromf[from_i]); } if (channels_in_float == 4) { diff --git a/source/blender/io/avi/intern/avi_rgb.c b/source/blender/io/avi/intern/avi_rgb.c index 8af728f0737..f1d83b9857b 100644 --- a/source/blender/io/avi/intern/avi_rgb.c +++ b/source/blender/io/avi/intern/avi_rgb.c @@ -20,7 +20,7 @@ /** \file * \ingroup avi * - * This is external code. Converts rgb-type avi-s. + * This is external code. Converts RGB-type AVI files. */ #include diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h index ea5c81761c6..c7a93080f7c 100644 --- a/source/blender/makesdna/DNA_gpencil_modifier_types.h +++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h @@ -260,7 +260,7 @@ typedef struct ColorGpencilModifierData { int pass_index; /** Flags. */ int flag; - /** Hsv factors. */ + /** HSV factors. */ float hsv[3]; /** Modify stroke, fill or both. */ char modify_color; diff --git a/source/blender/nodes/shader/nodes/node_shader_valToRgb.cc b/source/blender/nodes/shader/nodes/node_shader_valToRgb.cc index d4d08be5d49..2544ea1921c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_valToRgb.cc +++ b/source/blender/nodes/shader/nodes/node_shader_valToRgb.cc @@ -205,8 +205,8 @@ static void node_shader_exec_rgbtobw(void *UNUSED(data), bNodeStack **in, bNodeStack **out) { - /* stack order out: bw */ - /* stack order in: col */ + /* Stack order out: BW. */ + /* Stack order in: COL. */ float col[3]; nodestack_get_vec(col, SOCK_VECTOR, in[0]); diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 35acb56e66a..92499d3c0ff 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -7238,7 +7238,7 @@ static PyObject *pyrna_srna_ExternalType(StructRNA *srna) /* Sanity check, could skip this unless in debug mode. */ if (newclass) { PyObject *base_compare = pyrna_srna_PyBase(srna); - /* Can't do this because it gets superclasses values! */ + /* Can't do this because it gets super-classes values! */ // PyObject *slots = PyObject_GetAttrString(newclass, "__slots__"); /* Can do this, but faster not to. */ // PyObject *bases = PyObject_GetAttrString(newclass, "__bases__"); diff --git a/source/blender/render/intern/texture_procedural.c b/source/blender/render/intern/texture_procedural.c index bea9dfbb0ed..5a94bc09b93 100644 --- a/source/blender/render/intern/texture_procedural.c +++ b/source/blender/render/intern/texture_procedural.c @@ -745,7 +745,7 @@ static int mg_distNoiseTex(const Tex *tex, const float texvec[3], TexResult *tex /* ------------------------------------------------------------------------- */ /* newnoise: Voronoi texture type * - * probably the slowest, especially with minkovsky, bumpmapping, could be done another way. + * probably the slowest, especially with minkovsky, bump-mapping, could be done another way. */ static int voronoiTex(const Tex *tex, const float texvec[3], TexResult *texres) diff --git a/source/blender/simulation/intern/ConstrainedConjugateGradient.h b/source/blender/simulation/intern/ConstrainedConjugateGradient.h index c5a2827a09f..c231d511733 100644 --- a/source/blender/simulation/intern/ConstrainedConjugateGradient.h +++ b/source/blender/simulation/intern/ConstrainedConjugateGradient.h @@ -164,13 +164,13 @@ struct traits< * \brief A conjugate gradient solver for sparse self-adjoint problems with additional constraints * * This class allows to solve for A.x = b sparse linear problems using a conjugate gradient - * algorithm. The sparse matrix A must be selfadjoint. The vectors x and b can be either dense or + * algorithm. The sparse matrix A must be self-adjoint. The vectors x and b can be either dense or * sparse. * * \tparam _MatrixType the type of the sparse matrix A, can be a dense or a sparse matrix. * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower * or Upper. Default is Lower. - * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner + * \tparam _Preconditioner the type of the pre-conditioner. Default is #DiagonalPreconditioner * * The maximal number of iterations and tolerance value can be controlled via the * setMaxIterations() and setTolerance() methods. The defaults are the size of the problem for the -- cgit v1.2.3