diff --git a/intern/cycles/app/opengl/display_driver.cpp b/intern/cycles/app/opengl/display_driver.cpp
index 6e610b8b02ce7a8865ae7976db4fe9325249c005..8b99f3b6feb7b353e6a275f8460e31f60fd94021 100644
--- a/intern/cycles/app/opengl/display_driver.cpp
+++ b/intern/cycles/app/opengl/display_driver.cpp
@@ -75,7 +75,7 @@ bool OpenGLDisplayDriver::update_begin(const Params &params, int texture_width,
 
   /* Update PBO dimensions if needed.
    *
-   * NOTE: Allocate the PBO for the the size which will fit the final render resolution (as in,
+   * NOTE: Allocate the PBO for the size which will fit the final render resolution (as in,
    * at a resolution divider 1. This was we don't need to recreate graphics interoperability
    * objects which are costly and which are tied to the specific underlying buffer size.
    * The downside of this approach is that when graphics interoperability is not used we are
diff --git a/intern/cycles/integrator/render_scheduler.cpp b/intern/cycles/integrator/render_scheduler.cpp
index fe4697e082b7d34b1a0536b590700b928f565df9..0d8aef106e4d4d2249b3c63845d19fc5cc9c63e7 100644
--- a/intern/cycles/integrator/render_scheduler.cpp
+++ b/intern/cycles/integrator/render_scheduler.cpp
@@ -244,7 +244,7 @@ void RenderScheduler::render_work_reschedule_on_cancel(RenderWork &render_work)
   render_work.tile.write = tile_write;
   render_work.full.write = full_write;
 
-  /* Do not write tile if it has zero samples it it, treat it similarly to all other tiles which
+  /* Do not write tile if it has zero samples it, treat it similarly to all other tiles which
    * got canceled. */
   if (!state_.tile_result_was_written && has_rendered_samples) {
     render_work.tile.write = true;
diff --git a/intern/cycles/integrator/render_scheduler.h b/intern/cycles/integrator/render_scheduler.h
index 404f65e98a1697da6ca87ef891d28a40de61e853..dce876d44bde999115c22c30f8276da987c18e98 100644
--- a/intern/cycles/integrator/render_scheduler.h
+++ b/intern/cycles/integrator/render_scheduler.h
@@ -124,7 +124,7 @@ class RenderScheduler {
   /* Get sample up to which rendering has been done.
    * This is an absolute 0-based value.
    *
-   * For example, if start sample is 10 and and 5 samples were rendered, then this call will
+   * For example, if start sample is 10 and 5 samples were rendered, then this call will
    * return 14.
    *
    * If there were no samples rendered, then the behavior is undefined. */
@@ -132,7 +132,7 @@ class RenderScheduler {
 
   /* Get number of samples rendered within the current scheduling session.
    *
-   * For example, if start sample is 10 and and 5 samples were rendered, then this call will
+   * For example, if start sample is 10 and 5 samples were rendered, then this call will
    * return 5.
    *
    * Note that this is based on the scheduling information. In practice this means that if someone
diff --git a/source/blender/blenkernel/BKE_attribute_access.hh b/source/blender/blenkernel/BKE_attribute_access.hh
index 0d63bb88de123c055857b9703169d6c2ae5ab80c..500f386dcc0d8f4d695b7d10c4191e43d32fbf33 100644
--- a/source/blender/blenkernel/BKE_attribute_access.hh
+++ b/source/blender/blenkernel/BKE_attribute_access.hh
@@ -227,7 +227,7 @@ struct WriteAttributeLookup {
  * - An output attribute can live side by side with an existing attribute with a different domain
  *   or data type. The old attribute will only be overwritten when the #save function is called.
  *
- * \note The lifetime of an output attribute should not be longer than the the lifetime of the
+ * \note The lifetime of an output attribute should not be longer than the lifetime of the
  * geometry component it comes from, since it can keep a reference to the component for use in
  * the #save method.
  */
diff --git a/source/blender/blenkernel/BKE_geometry_set.hh b/source/blender/blenkernel/BKE_geometry_set.hh
index 7c55c53ed66c281c1941303246b38044a72f1f8e..d93b3ca95e7a1526aeb1fe16d5863e1fab8a377b 100644
--- a/source/blender/blenkernel/BKE_geometry_set.hh
+++ b/source/blender/blenkernel/BKE_geometry_set.hh
@@ -693,7 +693,7 @@ class CurveComponent : public GeometryComponent {
 
 /**
  * Holds a reference to conceptually unique geometry or a pointer to object/collection data
- * that is is instanced with a transform in #InstancesComponent.
+ * that is instanced with a transform in #InstancesComponent.
  */
 class InstanceReference {
  public:
diff --git a/source/blender/blenkernel/BKE_idprop.h b/source/blender/blenkernel/BKE_idprop.h
index b4dda3689e63a0a5c3f479efcd8b22435fd7bc1c..3f7d9498e396db8424a501639b23528fdbe6b92a 100644
--- a/source/blender/blenkernel/BKE_idprop.h
+++ b/source/blender/blenkernel/BKE_idprop.h
@@ -169,7 +169,7 @@ struct IDProperty *IDP_GetPropertyTypeFromGroup(const struct IDProperty *prop,
 
 /*-------- Main Functions --------*/
 /**
- * Get the Group property that contains the id properties for ID id.
+ * Get the Group property that contains the id properties for ID `id`.
  *
  * \param create_if_needed: Set to create the group property and attach it to id if it doesn't
  * exist; otherwise the function will return NULL if there's no Group property attached to the ID.
diff --git a/source/blender/blenkernel/intern/asset_library_test.cc b/source/blender/blenkernel/intern/asset_library_test.cc
index 4588909956724d20e9f09df76452cd12bbfb0adf..1d862e5e4d443844b72e5afba6cd8623fb5258fb 100644
--- a/source/blender/blenkernel/intern/asset_library_test.cc
+++ b/source/blender/blenkernel/intern/asset_library_test.cc
@@ -52,7 +52,7 @@ TEST_F(AssetLibraryTest, bke_asset_library_load)
   ASSERT_NE(nullptr, service);
 
   /* Check that the catalogs defined in the library are actually loaded. This just tests one single
-   * catalog, as that indicates the file has been loaded. Testing that that loading went OK is for
+   * catalog, as that indicates the file has been loaded. Testing that loading went OK is for
    * the asset catalog service tests. */
   const bUUID uuid_poses_ellie("df60e1f6-2259-475b-93d9-69a1b4a8db78");
   AssetCatalog *poses_ellie = service->find_catalog(uuid_poses_ellie);
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index 4531783c72a51b6d905997cc12b530d0328aa5b9..6ee6ff7f41d76f42f026c5505eadfb20f5f0cd93 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -144,7 +144,7 @@ static void brush_make_local(Main *bmain, ID *id, const int flags)
     /* FIXME: Recursive calls affecting other non-embedded IDs are really bad and should be avoided
      * in IDType callbacks. Higher-level ID management code usually does not expect such things and
      * does not deal properly with it. */
-    /* NOTE: assert below ensures that the comment above is valid, and that that exception is
+    /* NOTE: assert below ensures that the comment above is valid, and that exception is
      * acceptable for the time being. */
     BKE_lib_id_make_local(bmain, &brush->clone.image->id, 0);
     BLI_assert(!ID_IS_LINKED(brush->clone.image) && brush->clone.image->id.newid == NULL);
diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c
index ef2fa2266c4a3f0bfea343a6f599cf7a578dd2f8..6f2760e91a616e2c760da6e700a7b2f7d1ee840a 100644
--- a/source/blender/blenkernel/intern/fluid.c
+++ b/source/blender/blenkernel/intern/fluid.c
@@ -3292,7 +3292,7 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *fds,
   mpolys = me->mpoly;
   mloops = me->mloop;
 
-  /* Get size (dimension) but considering scaling scaling. */
+  /* Get size (dimension) but considering scaling. */
   copy_v3_v3(cell_size_scaled, fds->cell_size);
   mul_v3_v3(cell_size_scaled, ob->scale);
   madd_v3fl_v3fl_v3fl_v3i(min, fds->p0, cell_size_scaled, fds->res_min);
diff --git a/source/blender/blenkernel/intern/mesh_boolean_convert.cc b/source/blender/blenkernel/intern/mesh_boolean_convert.cc
index ec66cd0d84d773a42d31894d5beaf8c3b120cd32..eee1d3b9eec260ac2fc6d52af24495bc0aae8978 100644
--- a/source/blender/blenkernel/intern/mesh_boolean_convert.cc
+++ b/source/blender/blenkernel/intern/mesh_boolean_convert.cc
@@ -292,7 +292,7 @@ static IMesh meshes_to_imesh(Span<const Mesh *> meshes,
     r_info->mesh_edge_offset[mi] = e;
     r_info->mesh_poly_offset[mi] = f;
     /* Get matrix that transforms a coordinate in objects[mi]'s local space
-     * to the target space space. */
+     * to the target space. */
     const float4x4 objn_mat = (obmats[mi] == nullptr) ? float4x4::identity() :
                                                         clean_obmat(*obmats[mi]);
     r_info->to_target_transform[mi] = inv_target_mat * objn_mat;
diff --git a/source/blender/blenlib/BLI_path_util.h b/source/blender/blenlib/BLI_path_util.h
index b4427b1dc2a9b1b0ce8823642f20696c7fa29658..7b3e3e983f0bbe45d9890c876956ca6c8b80255a 100644
--- a/source/blender/blenlib/BLI_path_util.h
+++ b/source/blender/blenlib/BLI_path_util.h
@@ -298,7 +298,7 @@ bool BLI_path_parent_dir_until_exists(char *path) ATTR_NONNULL();
 bool BLI_path_abs(char *path, const char *basepath) ATTR_NONNULL();
 /**
  * Replaces "#" character sequence in last slash-separated component of `path`
- * with frame as decimal integer, with leading zeroes as necessary, to make digits digits.
+ * with frame as decimal integer, with leading zeroes as necessary, to make digits.
  */
 bool BLI_path_frame(char *path, int frame, int digits) ATTR_NONNULL();
 /**
diff --git a/source/blender/blenlib/intern/mesh_boolean.cc b/source/blender/blenlib/intern/mesh_boolean.cc
index 6e2e9787ebed9b6a8400eaa03bcf080fe6ed1433..70030fc2bdfbf2d4ec57ff1bd11760654d6e7a20 100644
--- a/source/blender/blenlib/intern/mesh_boolean.cc
+++ b/source/blender/blenlib/intern/mesh_boolean.cc
@@ -2185,7 +2185,7 @@ static void finish_patch_cell_graph(const IMesh &tm,
  * There will be a vector of \a nshapes winding numbers in each cell, one per
  * input shape.
  * As one crosses a patch into a new cell, the original shape (mesh part)
- * that that patch was part of dictates which winding number changes.
+ * that patch was part of dictates which winding number changes.
  * The shape_fn(triangle_number) function should return the shape that the
  * triangle is part of.
  * Also, as soon as the winding numbers for a cell are set, use bool_optype
diff --git a/source/blender/bmesh/tools/bmesh_bevel.c b/source/blender/bmesh/tools/bmesh_bevel.c
index e2e26c5c52b462cf9766bb1d159cc3b5e9bd1205..10bdc2c72945be1e074b864b1b91124b7622fdf4 100644
--- a/source/blender/bmesh/tools/bmesh_bevel.c
+++ b/source/blender/bmesh/tools/bmesh_bevel.c
@@ -532,7 +532,7 @@ static BevVert *find_bevvert(BevelParams *bp, BMVert *bmv)
 
 /**
  * Find the EdgeHalf representing the other end of e->e.
- * \return Return other end's BevVert in *r_bvother, if r_bvother is provided. That may not have
+ * \return other end's BevVert in *r_bvother, if r_bvother is provided. That may not have
  * been constructed yet, in which case return NULL.
  */
 static EdgeHalf *find_other_end_edge_half(BevelParams *bp, EdgeHalf *e, BevVert **r_bvother)
diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c
index 3d768b84846d15f00617380581147e5d68acd4e9..edb6d188ab80aaac8b92a454231f58ef8cb553bb 100644
--- a/source/blender/editors/animation/anim_channels_defines.c
+++ b/source/blender/editors/animation/anim_channels_defines.c
@@ -4601,7 +4601,7 @@ void ANIM_channel_draw(
     /* Draw slider:
      * - Even if we can draw sliders for this view,
      *   we must also check that the channel-type supports them
-     *   (only only F-Curves really can support them for now).
+     *   (only F-Curves really can support them for now).
      * - Slider should start before the toggles (if they're visible)
      *   to keep a clean line down the side.
      */
@@ -5336,7 +5336,7 @@ void ANIM_channel_draw_widgets(const bContext *C,
 
     /* Draw slider:
      * - Even if we can draw sliders for this view, we must also check that the channel-type
-     *   supports them (only only F-Curves really can support them for now).
+     *   supports them (only F-Curves really can support them for now).
      * - To make things easier, we use RNA-autobuts for this so that changes are
      *   reflected immediately, wherever they occurred.
      *   BUT, we don't use the layout engine, otherwise we'd get wrong alignment,
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 4819e8ed82c3ff3da97e66fd7286fceb53288830..a9a68be2d4812f77ca799afbafd8ee3c7ebd87b8 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -1418,7 +1418,7 @@ static bool ui_but_event_property_operator_string(const bContext *C,
   }
 
   /* This version is only for finding hotkeys for properties.
-   * These are set set via a data-path which is appended to the context,
+   * These are set via a data-path which is appended to the context,
    * manipulated using operators (see #ctx_toggle_opnames). */
 
   if (ptr->owner_id) {
diff --git a/source/blender/editors/interface/interface_template_list.cc b/source/blender/editors/interface/interface_template_list.cc
index 40675da71a9b312d0fd5f55bb1565a05ce562c53..6139ac8e7029ef52fb42e639cc71245389052349 100644
--- a/source/blender/editors/interface/interface_template_list.cc
+++ b/source/blender/editors/interface/interface_template_list.cc
@@ -598,7 +598,7 @@ static char *uilist_item_tooltip_func(bContext *UNUSED(C), void *argN, const cha
 }
 
 /**
- * \note Note that \a layout_type may be null.
+ * \note that \a layout_type may be null.
  */
 static uiList *ui_list_ensure(bContext *C,
                               uiListType *ui_list_type,
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index fbbf3c6fdf17d18dcf7156685995827b18030072..5638a98b33b08a29d80cd226a3a305a0c9e09c10 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -2579,7 +2579,7 @@ static void widget_state(uiWidgetType *wt, int state, int drawflag, eUIEmbossTyp
  *
  * A lot of places of the UI like the Node Editor or panels are zoomable. In most cases we can
  * get the zoom factor from the aspect, but in some cases like popups we need to fall back to
- * using the the size of the element. The latter method relies on the element always being the same
+ * using the size of the element. The latter method relies on the element always being the same
  * size.
  * \{ */
 
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c
index 58594affc05b74e6358abe285f9c1f9f15e8095e..203e18f962139a5ba365304cc5158d07e807d279 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -89,7 +89,7 @@
 
 #include "CLG_log.h"
 
-/* For menu/popup icons etc etc. */
+/* For menu/popup icons etc. */
 
 #include "UI_interface.h"
 #include "UI_resources.h"
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index 27ac34ba34638d2a806ca31b169dc32c4093d193..22427675ff34a4c21393a5049fa12b3a33ccd78a 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -242,7 +242,7 @@ static void graph_main_region_draw(const bContext *C, ARegion *region)
 
     GPU_blend(GPU_BLEND_NONE);
 
-    /* Vertical component of of the cursor. */
+    /* Vertical component of the cursor. */
     if (sipo->mode == SIPO_MODE_DRIVERS) {
       /* cursor x-value */
       float x = sipo->cursorTime;
diff --git a/source/blender/editors/space_node/drawnode.cc b/source/blender/editors/space_node/drawnode.cc
index 28ac7a34fa8bd0a8458df967a63540d3443f3b54..b2c361ecabaa474704157b3cd90aee3833a79537 100644
--- a/source/blender/editors/space_node/drawnode.cc
+++ b/source/blender/editors/space_node/drawnode.cc
@@ -147,7 +147,7 @@ static void node_buts_curvefloat(uiLayout *layout, bContext *UNUSED(C), PointerR
 }  // namespace blender::ed::space_node
 
 #define SAMPLE_FLT_ISNONE FLT_MAX
-/* Bad bad, 2.5 will do better? ... no it won't! */
+/* Bad! 2.5 will do better? ... no it won't! */
 static float _sample_col[4] = {SAMPLE_FLT_ISNONE};
 void ED_node_sample_set(const float col[4])
 {
diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc
index 455eceed293d180c748cd7b477d29431ca396be7..7f3bc8ccb1398e2c081c8866fc34ad4f4455500f 100644
--- a/source/blender/editors/space_node/node_draw.cc
+++ b/source/blender/editors/space_node/node_draw.cc
@@ -1049,7 +1049,7 @@ static void node_socket_draw_nested(const bContext &C,
       },
       data,
       MEM_freeN);
-  /* Disable the button so that clicks on it are ignored the the link operator still works. */
+  /* Disable the button so that clicks on it are ignored the link operator still works. */
   UI_but_flag_enable(but, UI_BUT_DISABLED);
   UI_block_emboss_set(&block, old_emboss);
 }
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index 1e810a9c59ed636a73ba3e3b0891f83305dea923..5ac4363e63d91c764097fbbea50cf7683026ef15 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -1636,7 +1636,9 @@ static void sequencer_draw_gpencil_overlay(const bContext *C)
   ED_annotation_draw_view2d(C, 0);
 }
 
-/* Draw content and safety borders borders. */
+/**
+ * Draw content and safety borders.
+ */
 static void sequencer_draw_borders_overlay(const SpaceSeq *sseq,
                                            const View2D *v2d,
                                            const Scene *scene)
diff --git a/source/blender/functions/intern/field.cc b/source/blender/functions/intern/field.cc
index 054a6b51adf44797c2775ec92f520a0dc88adbb7..7b514b6a49bf53f8d15d128099189d8470cce3fd 100644
--- a/source/blender/functions/intern/field.cc
+++ b/source/blender/functions/intern/field.cc
@@ -26,7 +26,7 @@ struct FieldTreeInfo {
    */
   MultiValueMap<GFieldRef, GFieldRef> field_users;
   /**
-   * The same field input may exist in the field tree as as separate nodes due to the way
+   * The same field input may exist in the field tree as separate nodes due to the way
    * the tree is constructed. This set contains every different input only once.
    */
   VectorSet<std::reference_wrapper<const FieldInput>> deduplicated_field_inputs;
@@ -137,7 +137,7 @@ static Set<GFieldRef> find_varying_fields(const FieldTreeInfo &field_tree_info,
 }
 
 /**
- * Builds the #procedure so that it computes the the fields.
+ * Builds the #procedure so that it computes the fields.
  */
 static void build_multi_function_procedure_for_fields(MFProcedure &procedure,
                                                       ResourceScope &scope,
diff --git a/source/blender/gpu/intern/gpu_shader_create_info.hh b/source/blender/gpu/intern/gpu_shader_create_info.hh
index bd0187e2dc5f92d94a7fbc713d160255f7ab96e8..e05dce576740b8a3eb7c3d52c4510bd4d63e74c7 100644
--- a/source/blender/gpu/intern/gpu_shader_create_info.hh
+++ b/source/blender/gpu/intern/gpu_shader_create_info.hh
@@ -497,9 +497,9 @@ struct ShaderCreateInfo {
 
   /**
    * IMPORTANT: invocations count is only used if GL_ARB_gpu_shader5 is supported. On
-   * implementations that do not supports it, the max_vertices will be be multiplied by
-   * invocations. Your shader needs to account for this fact. Use `#ifdef GPU_ARB_gpu_shader5`
-   * and make a code path that does not rely on gl_InvocationID.
+   * implementations that do not supports it, the max_vertices will be multiplied by invocations.
+   * Your shader needs to account for this fact. Use `#ifdef GPU_ARB_gpu_shader5` and make a code
+   * path that does not rely on #gl_InvocationID.
    */
   Self &geometry_layout(PrimitiveIn prim_in,
                         PrimitiveOut prim_out,
diff --git a/source/blender/gpu/intern/gpu_shader_dependency_private.h b/source/blender/gpu/intern/gpu_shader_dependency_private.h
index 29ee70962d19318b79832e42a17452fd81364cef..7b9ecef5835f06d670f309e64adbc55a75df275c 100644
--- a/source/blender/gpu/intern/gpu_shader_dependency_private.h
+++ b/source/blender/gpu/intern/gpu_shader_dependency_private.h
@@ -38,7 +38,7 @@ StringRefNull gpu_shader_dependency_get_source(const StringRefNull source_name);
 
 /**
  * \brief Find the name of the file from which the given string was generated.
- * \return Return filename or empty string.
+ * \return filename or empty string.
  * \note source_string needs to be identical to the one given by gpu_shader_dependency_get_source()
  */
 StringRefNull gpu_shader_dependency_get_filename_from_source_string(
diff --git a/source/blender/gpu/opengl/gl_immediate.cc b/source/blender/gpu/opengl/gl_immediate.cc
index cfedfe348f1941338a5388458773a60625e04967..c32a6afd8cf0a1495ad18612ae232c59e855dead 100644
--- a/source/blender/gpu/opengl/gl_immediate.cc
+++ b/source/blender/gpu/opengl/gl_immediate.cc
@@ -139,7 +139,7 @@ void GLImmediate::end()
     GLContext::get()->state_manager->apply_state();
 
     /* We convert the offset in vertex offset from the buffer's start.
-     * This works because we added some padding to align the first vertex vertex. */
+     * This works because we added some padding to align the first vertex. */
     uint v_first = buffer_offset() / vertex_format.stride;
     GLVertArray::update_bindings(
         vao_id_, v_first, &vertex_format, reinterpret_cast<Shader *>(shader)->interface);
diff --git a/source/blender/ikplugin/intern/itasc_plugin.cpp b/source/blender/ikplugin/intern/itasc_plugin.cpp
index 6dcfd3d014eab7f80cccfa79e95da98b7dbd8bfe..470dfb01bdd2c4483f7da6c085a47ecc97928613 100644
--- a/source/blender/ikplugin/intern/itasc_plugin.cpp
+++ b/source/blender/ikplugin/intern/itasc_plugin.cpp
@@ -244,9 +244,9 @@ static int initialize_chain(Object *ob, bPoseChannel *pchan_tip, bConstraint *co
     }
 
     if (BLI_listbase_is_empty(&curchan->iktree) == false) {
-      /* Oh oh, there is already a chain starting from this channel and our chain is longer...
+      /* Oh, there is already a chain starting from this channel and our chain is longer.
        * Should handle this by moving the previous chain up to the beginning of our chain
-       * For now we just stop here */
+       * For now we just stop here. */
       break;
     }
   }
diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c
index 7e24ca4424441b7c4de313865e491b2bcfc3631a..c1e00642a6d54d98c76733fabea5c9ea88d52bcb 100644
--- a/source/blender/imbuf/intern/indexer.c
+++ b/source/blender/imbuf/intern/indexer.c
@@ -1162,7 +1162,7 @@ static int indexer_performance_get_max_gop_size(FFmpegIndexBuilderContext *conte
 }
 
 /* Assess scrubbing performance of provided file. This function is not meant to be very exact.
- * It compares number number of frames decoded in reasonable time with largest detected GOP size.
+ * It compares number of frames decoded in reasonable time with largest detected GOP size.
  * Because seeking happens in single GOP, it means, that maximum seek time can be detected this
  * way.
  * Since proxies use GOP size of 10 frames, skip building if detected GOP size is less or
diff --git a/source/blender/makesdna/DNA_fluid_types.h b/source/blender/makesdna/DNA_fluid_types.h
index 953a15f7502e2db8769d7ee8e222c7a087763623..11780d99af8215513ebac3ec7fc38909430f2a69 100644
--- a/source/blender/makesdna/DNA_fluid_types.h
+++ b/source/blender/makesdna/DNA_fluid_types.h
@@ -611,7 +611,7 @@ typedef struct FluidDomainSettings {
 
   /* Fluid guiding options. */
   float guide_alpha;      /* Guiding weight scalar (determines strength). */
-  int guide_beta;         /* Guiding blur radius (affects size of vortices vortices). */
+  int guide_beta;         /* Guiding blur radius (affects size of vortices). */
   float guide_vel_factor; /* Multiply guiding velocity by this factor. */
   int guide_res[3];       /* Res for velocity guide grids - independent from base res. */
   short guide_source;
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index c8f710d9931d86cdec8e3a4be8864c9578110da8..7ccb8181b51acb6cbcf683d95a5baf8f24f5485a 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -4904,7 +4904,7 @@ static char *rna_path_token_in_brackets(const char **path,
 }
 
 /**
- * \return true when when the key in the path is correctly parsed and found in the collection
+ * \return true when the key in the path is correctly parsed and found in the collection
  * or when the path is empty.
  */
 static bool rna_path_parse_collection_key(const char **path,
diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h
index 2c5f264f7e905d9a65967233a6065dcee3b04221..44bf51d9770a18d9ca4af70469de6968eec0f39f 100644
--- a/source/blender/makesrna/intern/rna_internal.h
+++ b/source/blender/makesrna/intern/rna_internal.h
@@ -649,7 +649,7 @@ const char *rna_translate_ui_text(const char *text,
                                   struct PropertyRNA *prop,
                                   bool translate);
 
-/* Internal functions that cycles uses so we need to declare (tsk tsk) */
+/* Internal functions that cycles uses so we need to declare (tsk!). */
 void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values);
 
 #ifdef RNA_RUNTIME
diff --git a/source/blender/nodes/NOD_node_declaration.hh b/source/blender/nodes/NOD_node_declaration.hh
index 3bcd4b87b15abe2ec4e1b5beef361e90fda54e36..4e78f6c1142340f106310562b89cfc76796baac8 100644
--- a/source/blender/nodes/NOD_node_declaration.hh
+++ b/source/blender/nodes/NOD_node_declaration.hh
@@ -110,7 +110,7 @@ class SocketDeclaration {
   /**
    * Change the node such that the socket will become visible. The node type's update method
    * should be called afterwards.
-   * \note Note that this is not necessarily implemented for all node types.
+   * \note this is not necessarily implemented for all node types.
    */
   void make_available(bNode &node) const;
 
diff --git a/source/blender/nodes/NOD_socket_search_link.hh b/source/blender/nodes/NOD_socket_search_link.hh
index e39274886127ac23d8ed665944f24d0fce141861..7a1aff13020b635284f2ca9c98f9996babe19037 100644
--- a/source/blender/nodes/NOD_socket_search_link.hh
+++ b/source/blender/nodes/NOD_socket_search_link.hh
@@ -16,7 +16,7 @@ struct bContext;
 namespace blender::nodes {
 
 /**
- * Parameters for the operation operation of adding a node after the link drag search menu closes.
+ * Parameters for the operation of adding a node after the link drag search menu closes.
  */
 class LinkSearchOpParams {
  private:
diff --git a/source/blender/nodes/intern/node_common.cc b/source/blender/nodes/intern/node_common.cc
index d6a4af7ef39c7ced5b5822b1bb731879979a8035..c2d440efdb5d25869f073730c82e5452639448a9 100644
--- a/source/blender/nodes/intern/node_common.cc
+++ b/source/blender/nodes/intern/node_common.cc
@@ -326,7 +326,7 @@ void ntree_update_reroute_nodes(bNodeTree *ntree)
   }
 
   /* Propagate socket types from right to left. This affects reroute nodes that haven't been
-   * changed in the the loop above. */
+   * changed in the loop above. */
   for (bNode *start_node : nodes_linked_with_reroutes) {
     LISTBASE_FOREACH (bNodeSocket *, input_socket, &start_node->inputs) {
       propagate_reroute_type_from_start_socket(input_socket, links_map, reroute_types);
diff --git a/source/blender/sequencer/intern/effects.c b/source/blender/sequencer/intern/effects.c
index 3196ca08155bf55e3e66f3f19c3c7c16569552aa..aa433eeed0947601577e27e7b52a176c3d18e571 100644
--- a/source/blender/sequencer/intern/effects.c
+++ b/source/blender/sequencer/intern/effects.c
@@ -1918,7 +1918,7 @@ static void RVBlurBitmap2_float(float *map, int width, int height, float blur, i
    * I changed the math around to implement an actual Gaussian distribution.
    *
    * Watch out though, it tends to misbehave with large blur values on
-   * a small bitmap. Avoid avoid! */
+   * a small bitmap. Avoid! */
 
   float *temp = NULL, *swap;
   float *filter = NULL;
diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c
index 4aba287aefb87e48bef1d056f8b82955b685196d..ad902f0963ec60b01d5b73dcde249b96d519dde1 100644
--- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c
+++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c
@@ -726,7 +726,7 @@ static wmGizmo *gizmo_find_intersected_3d(bContext *C,
      * - First, don't use the depth buffer at all, use occlusion queries to detect any gizmos.
      *   If there are no gizmos or only one - early exit, otherwise.
      *
-     * - Bind the depth buffer and and use selection picking logic.
+     * - Bind the depth buffer and use selection picking logic.
      *   This is much slower than occlusion queries (since it's reading depths while drawing).
      *   When there is a single gizmo under the cursor (quite common), early exit, otherwise.
      *